页面滚动时的活动类

时间:2013-01-14 11:17:00

标签: jquery

开发单页(正文滚动顶部动画) 请先查看演示,然后在'menu li a'上查看添加/删除活动课程 http://jsfiddle.net/sUMaa/1/

一切都很好,但单一的问题 我们使用鼠标滚动页面时需要相同的活动类功能

jQuery('ul li a').click(function(){
        var idName = jQuery(this).attr('href');
        var idNameFixTop =  jQuery(idName).offset().top; 
        jQuery('html, body').animate({scrollTop:idNameFixTop}, 1000);

        jQuery('ul li a').removeClass('active');
        jQuery(this).addClass('active');
});

2 个答案:

答案 0 :(得分:1)

虽然我理解你的问题,但是你自己实现这个问题可能会引发一些棘手的问题:

  • 在导航元素设置为活动状态之前,应该可以看到多少元素
  • 如果当前可以看到多个元素,则要突出显示的内容

为了让您的生活更轻松,请使用jQuery Waypoints plugin之类的内容。看看Docs,您几乎可以控制所有内容。

代码示例:

$('div').waypoint(function() {
  $('ul li a').removeClass('active');
  var currentIndex = $('div').index($(this));
  $('ul li:eq(' + currentIndex + ') a').addClass('active');
},
{
  offset: 'bottom-in-view'
});

答案 1 :(得分:1)

无论哪种方式,您都可以使用twitter bootstrap Scrollspy,工作正常:)