Привязать MouseMove с Mousedown Event (jQuery)
Вопрос
Я создаю горизонтальный сайт прокрутки. Не ненавиди! Кажется, все работает нормально, за исключением случаев, когда я связываю событие MouseMove на Mousedown, свойство Scrollft Dom не меняется. «Перемещение» и «MouseUp» оба написаны на консоли в соответствующее время. Вот мой код ... Изменить: Кроме того, я заметил, что если я напишу $ ('#incecuter'). Прокрутка в консоли на Mousedown, он возвращает функцию () 'вместо значения.
$(document).ready(function() {
$('#container').mousedown(function(event) {
$(this)
.data('down',true)
.data('x',event.pageX)
.data('scrollLeft',this.scrollLeft)
.css({'cursor':'url("http://www.loodieloodieloodie.com/images/closedhand.cur"),auto'});
$('body').bind('mousemove',function(event) {
console.log('moving');
$('#container').scrollLeft = $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2;
}).bind('mouseup',function() {
$('#container')
.data('down',false)
.css({'cursor':'url("http://www.loodieloodieloodie.com/images/openhand.cur"),auto'});
console.log('mouseup');
$(this).unbind('mousemove');
});
return false;
}).css({
'overflow':'hidden',
'cursor':'url("http://www.loodieloodieloodie.com/images/openhand.cur"),auto'
});
});
А вот основной HTML ...
<body>
<div id="container">
<div id="inner">
CONTENT
</div>
</div>
</body>
Спасибо за помощь, б
Решение
Здесь нет .scrollLeft
имущество на объектах jQuery, поэтому вместо TIS:
$('#container').scrollLeft = $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2;
Ты нуждаешься в .scrollLeft()
функция Позвоните как это:
$('#container').scrollLeft($('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2);
или .css()
Позвоните, как это:
$('#container').css({ scrollLeft: $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2 });
Не связан с StackOverflow