2011-01-03 2 views
1

Я пытаюсь создать функцию, в которой пользователь видит меню с 5 номерами, 1 - 5. 1 = самый медленный и 5 = самый быстрый, когда кто-то клик по одному из этих номеров, страница начинает прокручивать себя, делая так, чтобы человеку не пришлось прокручивать страницу. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу, чтобы у человека все еще был доступ к их колесику мыши, но когда я использую колесико мыши во время анимации страницы, он подталкивает страницу вниз, а затем она подталкивает страницу обратно туда, где она была и он продолжает анимацию, но не позволяет мне прокручивать вниз или создавать резервные копии, а затем анимировать с новой позиции, которую я прокрутил с помощью мыши. Прямо сейчас у меня это так, если я нажимаю на страницу во время прокрутки, она останавливается, но я не включаю это в окончательный скрипт, любую помощь? БЛАГОДАРЯ!jquery: auto scroll page, но разрешить колесико мыши, все еще прокручивая

$('html,body').animate({scrollTop: $(target).offset().top},430000) 

$('html,body').click(function(){ 
    $('html,body').stop() 
}) 

ответ

1

Я пытался сделать это, нажав на scroll событие, но, увы, это событие вызывается повторно, когда анимация работает (должен был знать лучше).

я в конечном итоге с помощью jQuery Mousewheel Plugin, который более чувствителен к прокручивать события и может различать scroll и mousewheel, так что вы можете написать что-то вроде этого:

$(window).bind("mousewheel", function() { 
    $("html, body").stop(); 
}); 

http://jsfiddle.net/Yuw9R/1/

Прокрутка вверх или вниз при этом колесо должно остановить автоматическую прокрутку. Возможно, вы захотите добавить код для повторного включения стрелок вверх/вниз. Вот код, который вы могли бы добавить, чтобы сделать это:

$(window).bind("keydown", function(event) { 
    var keyCode = event.which; 
    /* up, down, left, right, or page up or page down */ 
    if (keyCode === 33 || keyCode == 34 || (keyCode >= 37 && keyCode <= 40)) { 
     $("html, body").stop(); 
    } 
}); 

Если вы не хотите использовать плагин, check out this related thread.