0
カーソルをポイントするために別の矢印をアニメートしようとしていますが、そのための軽量ソリューションは見つかりません。独立して要素を移動するjs
私は以下のコードを使用していますが、ウェブサイトに少し重いようです。コードを最適化する方法はありますか?
乾杯! T
// the same as yours.
function rotateOnMouse(e, pw) {
var offset = pw.offset();
var center_x = (offset.left) + ($(pw).width()/2);
var center_y = (offset.top) + ($(pw).height()/2);
var mouse_x = e.pageX;
var mouse_y = e.pageY;
var radians = Math.atan2(mouse_x - center_x, mouse_y - center_y);
var degree = (radians * (180/Math.PI) * -1);
$(pw).css('-moz-transform', 'rotate(' + degree + 'deg)');
$(pw).css('-webkit-transform', 'rotate(' + degree + 'deg)');
$(pw).css('-o-transform', 'rotate(' + degree + 'deg)');
$(pw).css('-ms-transform', 'rotate(' + degree + 'deg)');
}
$(document).mousemove(function(e) {
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD1'));
});
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD2'));
});
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD3'));
});
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD4'));
});
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD5'));
});
$(document).bind('mousemove.rotateImg', function(e2) {
rotateOnMouse(e2, $('#arrowD6'));
});
});
http://codepen.io/thalesribeiro/pen/egVgpp
うーん、それは私のために働いていません。あなたは私にそれを他のコードとどのように適用するかの例を示すことができますか? –
あなたのコードを編集して私の提案を得て、答えにリンクを追加しました。また、パフォーマンスをさらに向上させたい場合は、jqueryがまだサポートしていない受動的なイベントリスナーを使用することをお勧めします。 – mateop
同じクラスのすべての要素を呼び出す場合、どうすればうまくいきますか?例えば、.arrowsのようにして、それぞれの矢印に同じ関数を呼び出す必要はありませんか? –