我想要做的是一個jQuery腳本,根據瀏覽器窗口中的光標位置旋轉div內的元素。根據光標位置與jQuery旋轉元素
的比例是一樣的東西:
maximum_pixels_x-AXYS:2°= center_pixels_x-AXYS:0°
與同爲Y軸。
如果光標位於屏幕的中心,則不旋轉。如果它在別的地方,它必須從0°旋轉到2°(或者取決於屏幕在相對笛卡爾平面中的位置的負值)。所以這是一個具有即時反饋的動態輪換。
就像你在這裏看到:http://css3playground.com/flashlight.php(從菜單中選擇「斜面」中選擇),但使用transform:rotate
代替text-shadow
。
現在我試着用transit.js,用sin e cos代替度數(從0到1的「度數」會導致)。我知道這不是正確的方式,但它是我想要獲得較低度數的最接近的方法。
var max_x = $(window).width();
var max_y = $(window).height();
var center_x = (max_x/2);
var center_y = (max_y/2);
$(document).mousemove(function(e) {
var mouse_x = e.pageX,
mouse_y = e.pageY,
hypotenuse = Math.sqrt(Math.pow((mouse_x-center_x),2)+Math.pow((mouse_y-center_y), 2)),
cos = (mouse_x-center_x)/hypotenuse,
sin = (mouse_y-center_y)/hypotenuse;
$('#div1, #div2').transition({ perspective: '400px', rotateX: sin, rotateY: cos });
});
但結果不是我所期望的。 div旋轉(以錯誤的方式旋轉),但不是動態的。
我該怎麼辦?
小提琴:http://jsfiddle.net/lucgenti/LtWtW/11/
加入小提琴鏈接jQuery的。我不知道爲什麼它不起作用,因爲在我的本地文件夾中它起作用(正如我所說的那樣錯誤)。 – lucgenti
對於你的'.ready'語法錯誤:你需要'';'在最後。第二,你如何導入transit.js?小提琴根本沒有輸入它,你可以將你的實現複製到小提琴嗎? –
如果你將'sin'和'cos'的值更加極端(我把它們乘以30),你會發現它正在超載瀏覽器,導致它凍結 –