Я пытаюсь создать анимацию прокрутки, когда пользователь перемещает колесо мыши вверх или вниз, нажимает стрелки ключевых слов или перемещает полосу прокрутки сбоку.
Это очень похоже на то, что я нашел на этом сайте. Поскольку я не нашел для него плагина jQuery, я пытаюсь воспроизвести его самостоятельно, и у меня возникают проблемы с поведением прокрутки.
Когда происходит анимация прокрутки, вы все еще можете прокручивать колесико мыши, и это заставляет движение выглядеть уродливо, перемещаясь вверх и вниз некоторое время.
Вот моя скрипка, где вы можете ее проверить: http://jsfiddle.net/k4rsN/1/
Проблема в том, что прокрутка не отключена, и прежде чем я смогу проверить, прокручиваются ли они вверх или вниз, сайт уже немного прокрутился (движение колеса или ключевое слово). Поэтому я считаю, что способ решить эту проблему - отключить эффект прокрутки и позволить мне решать, что делать, когда пользователь решает прокрутить.
Я просматривал такие сообщения, как это или это, но это не решает мой проблема.
Вот что я сделал до сих пор, как вы можете видеть в скрипке:
var lastScrollTop = 0;
var isMoving = false;
$(window).scroll(function () {
var currentScroll = $(window).scrollTop();
//scrolling down?
if (currentScroll > lastScrollTop && !isMoving) {
var value = '#link2';
}
//scrolling up?
else if (!isMoving) {
var value = '#link1';
}
lastScrollTop = currentScroll;
//animation
if (value && !isMoving) { //if theres any #
isMoving = true;
dest = $(value).offset();
$('html, body').animate({
scrollTop: dtop
}, 1200, function () {
//setting the flag to avoid checking the scrolling when performing the animation
isMoving = false;
});
}
});
Спасибо.