shark-node-openid
Version:
shark-node-openid is used for netease's openid.
40 lines (37 loc) • 1.85 kB
JavaScript
$(function() {
var h1 = $('.g-content h1[id]');
var sideNav = $('#sideNav');
$(window).on('scroll', function() {
//获取当前滚动条的位置
var top = $(document).scrollTop();
if(top >= 20) {
sideNav.addClass('nav-fixed');
} else {
sideNav.removeClass('nav-fixed')
}
var activeClass = 'active';
h1.each(function(idx, t) {
var offset = top - $(this).offset().top;
if (offset <= 0 | idx == h1.length - 1) {
var nearest = Math.abs(offset) < 10 | (idx == h1.length - 1 && offset > 0) ? $(t) : $(h1[idx - 1]);
$('.g-side .nav > li.' + activeClass).removeClass(activeClass);
$('.g-side .nav > li a[href="#' + nearest.attr('id') + '"]').closest('li').addClass(activeClass);
var curh2 = $(h1[idx - 1]).nextUntil('h1').find('h2');
curh2.each(function(idx, t) {
var offset = top - $(t).offset().top;
if (offset <= 0 | idx == curh2.length - 1) {
var nearest = Math.abs(offset) < 10 | (idx == curh2.length - 1 && offset > 0) ? $(t) : $(curh2[idx - 1]);
$('.g-side .nav .nav > li.' + activeClass).removeClass(activeClass);
$('.g-side .nav .nav > li a[href="#' + nearest.attr('id') + '"]').closest('li').addClass(activeClass)
return false;
}
});
return false;
}
});
if (top == $(document).height() - $(window).height()) {
$('.g-side .nav > li.' + activeClass).removeClass(activeClass);
$('.g-side .nav > li a[href="#' + $(h1[h1.length - 1]).attr('id') + '"]').closest('li').addClass(activeClass);
}
});
});