jQueryを使って水平スクローラーを作っています。以下を使用して動作させています
var wrapper = $('#wrapper'),
content = $('#scroll-content');
wrapper.bind('mousemove', function(e){
var wrapper_width = wrapper.width(),
content_width = content.width();
//wrapper and content width
var tmp = e.pageX * (content.outerWidth() - wrapper.outerWidth()) / wrapper.outerWidth();
//calculate new left margin
content.css({ 'margin-left': '-'+tmp+'px' });
//set margin according
/*content.animate({
'margin-left': '-'+tmp+'px'
}, 30, 'easeOutSine');*/
});
すべての mousemove イベントで、新しい左マージンを計算します。スライダーは画面の幅 100% にまたがります。
これは機能しますが、2 つの問題があります。何百ものイベントがあるため、すべての mousemove イベントで計算を呼び出すのは悪い習慣のようです。おそらくタイマーを使用して、より良い方法はありますか?
別の質問です。ユーザーが最初にスライダーをホバーしたときに、スライダーが正しい位置にスライドするようにアニメーションを使用しようとしましたが、うまくいかなかったようです。(一番下にコメントあり)
これらの問題の助けは素晴らしいでしょう。ありがとう