我正在构建一个页面网站,上面有一个粘性导航。我已经实现了几乎所有东西,但是当用户通过鼠标滚轮或浏览器的滚动条滚动而不是使用导航时,我无法实现导航链接的突出显示。我想这可以通过在最靠近顶部的部分添加一个预先设置的类来实现?
我的第二个问题是当用户在页面滚动时执行某些操作时如何停止滚动?
我的网站标记是
<nav class="columns col-12 main-nav">
<ul>
<li><a href="#page1" class="selected">a link</a></li>
<li><a href="#page2">another link</a></li>
<li><a href="#page3">cat</a></li>
<li><a href="#page4">dog</a></li>
</ul>
</nav>
<div class="container">
<section class="page" id="page1" data-stellar-background-ratio="1.75">
</section>
</div>
<div class="container">
<section class="page" id="page2" data-stellar-background-ratio="1">
</section>
</div>
这是我的 JQuery,用于导航到滚动到相应的 id
$(document).ready(function() {
$('a').click(function() {
var el = $(this).attr('href');
var elWrapped = $(el);
scrollToEle(elWrapped, 40);
return false;
});
function scrollToEle(element, navheight) {
var offset = element.offset();
var offsetTop = offset.top;
var totalScroll = offsetTop - navheight;
$('body,html').animate({
scrollTop : totalScroll,
}, 2000, 'easeInCirc');
}
});
这就是我在用户单击导航链接时突出显示它的方式。(我认为这不是一个好方法)
$(document).ready(function() {
$('nav a').click(function() {
$('nav .selected').removeClass('selected');
$(this).addClass('selected');
});
});
我真的很抱歉我糟糕的英语。我希望你能理解我的问题。我的问题是当用户在不使用导航的情况下滚动页面时如何突出显示链接。以及当用户在页面滚动时单击页面时如何停止滚动。