Я играю с помощью jQuery scrollTo, пытаясь сделать гладкий сайт прокрутки с полными разделами тела. Прокрутки и переходы работают отлично, за исключением того, когда вы прокрутки вверх от первой секции, скрипт подсвечивает панель навигации в разделе, вместо того, чтобы остаться в разделе 1.jQuery scrollTo ограничение для детей
Пример: http://jsfiddle.net/8jh3qt5c/2/
Вот как СЧА выглядит следующим образом:
<div id="header">
<ul id="nav">
<li><a href="#section-1">Section 1</a>
</li>
<li><a href="#section-2">Section 2</a>
</li>
<li><a href="#section-3">Section 3</a>
</li>
</ul>
</div>
И вот scroll.js:
var $current, flag = false;
$(function() {
$('#nav').onePageNav();
$('body').mousewheel(function(event, delta) {
if (flag) { return false; }
$current = $('div.current');
if (delta > 0) {
$prev = $current.prev();
if ($prev.length) {
flag = true;
$('body').scrollTo($prev, 500, {
onAfter : function(){
flag = false;
}
});
$current.removeClass('current');
$prev.addClass('current');
}
} else {
$next = $current.next();
if ($next.length) {
flag = true;
$('body').scrollTo($next, 500, {
onAfter : function(){
flag = false;
}
});
$current.removeClass('current');
$next.addClass('current');
}
}
event.preventDefault();
});
});
я могу Кажется, вы нашли способ исключить панель навигации из прокрутки, поэтому, когда на первой панели прокрутка вверх не будет иметь никакого эффекта.
Также, когда вы обновляете страницу в нижней части, есть способ сбросить текущий видимый раздел к первому, так как прямо сейчас окно остается на том, что было текущим.
Любая помощь была бы принята с благодарностью!
Спасибо за ответ Ариэль, но код при условии, не работает. Я посмотрел на localScroll, но не смог найти какую-либо информацию об использовании мыши для прокрутки с помощью приятной анимации (она только анимация при нажатии). –
Я сказал, что это может заменить onePageNav не все. Часть колесика мыши должна выполняться отдельно. –
Я исправил ошибку в своем коде, вы можете повторно протестировать ее сейчас. Повторное копирование вашего кода для проверки кода на самом деле занимает много времени, если вы должны сделать jsfiddle или аналогичный. Это способ быстрее попробовать другой скрипт. –