我尝试模拟面板之间的平滑滚动,并在面板顶部到达视口顶部时为链接添加活动状态。在我测试Firefox之前,一切都很顺利。面板之间的滚动是锯齿状的,有时状态会被添加到错误的链接中。这是我的代码:
$(document).ready(function () {
$(window).scroll(function () {
var y = $(this).scrollTop();
$('.link').each(function (event) {
if (y >= $($(this).attr('href')).offset().top - 0) {
$('.link').not(this).removeClass('active');
$(this).addClass('active');
}
});
});
});
// SMOOTH SCROLLING
$(function () {
$('a[href*=#]:not([href=#])').click(function () {
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
if (target.length) {
$('html,body').animate({
scrollTop: (target.offset().top - 0)
}, 850);
return false;
}
}
});
});
此外,您还可以看到我在此处工作的页面:http://zebron.github.io/