【发布时间】:2015-06-14 17:33:15
【问题描述】:
我正在使用 jQuery scrollTo,试图制作一个具有完整正文部分的平滑滚动站点。滚动和过渡工作正常,除了当您从第一部分向上滚动时,脚本将导航面板突出显示为一个部分,而不是停留在第 1 部分。
例子: 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();
});
});
我似乎找不到从滚动中排除导航面板的方法,因此在第一个面板上时,向上滚动不会有任何效果。
此外,当您刷新较低部分的页面时,是否可以将当前可见部分重置为第一个部分,因为现在窗口会停留在当前可见部分。
任何帮助将不胜感激!
【问题讨论】: