Я делаю горизонтальный скроллер с помощью 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% ширины экрана.
Это работает, но у меня есть две проблемы. Кажется плохой практикой вызывать расчет для каждого события mousemove, поскольку их сотни. Есть ли лучший способ, может быть, с помощью таймеров?
Другой вопрос, когда пользователь сначала наводит ползунок, он встает на место, я пытался использовать анимацию, чтобы ползунок скользил вниз в правильное положение, но, похоже, это не сработало. (комментарии внизу)
любая помощь с этими проблемами будет здорово. Спасибо