Следующая функция перемещает панель прокрутки вверх или вниз в зависимости от того, какой элемент нажат. Проблема состоит в том, что если пользователь дважды щелкает мышью, то переменная с именем offset не устанавливает правильную позицию, поскольку предыдущая анимация не закончилась. Нам нужен способ поставить анимацию в очередь, но я не знаю, как это сделать.
Я попробовал тайм-аут, но он вызывает функцию тайм-аута во время текущего тайм-аута, так что это тоже не годится.
var offset = 0;
$('#leftwheel li').click(function() {
var leftid = '#BKD' + $('#sLeft').val();
var doubleforward = $(leftid).next().next().attr('id');
var doublebackward = $(leftid).prev().prev().attr('id');
var offsettots = ($(this).parent().height() - 16) / 32;
var $this = this;
var offset = $($this).parent().position().top;
if('#' + $($this).attr('id') == leftid) { return false; }
else if($($this).attr('id') == doubleforward) {
offset += -64;
myScroll2.scrollTo(0, offset, 400);
}
else if($($this).attr('id') == doublebackward) {
offset += 64;
myScroll2.scrollTo(0, offset, 400);
}
else if('#' + $($this).attr('id') > leftid) {
offset += -32;
myScroll2.scrollTo(0, offset, 250);
}
else if('#' + $($this).attr('id') < leftid) {
offset += 32;
myScroll2.scrollTo(0, offset, 250);
}
});
Есть идеи?
Marvelous