www.gusucode.com > 200套html5精品模板1_50 > 200套html5精品模板1_50/027/js/jquery.js
var $nCurrentActive; var scrolling = 1; var $nav = $('nav li'); $nav.addClass('off'); //nav setup @ mouseevents $nav.bind('mouseenter', function() { $nCurPos = $(this).attr('id').substr(4); nIsHovered = setTimeout("onMenu($nCurPos)", 100); }); $nav.bind('mouseleave', function() { clearTimeout(nIsHovered); $nCurPos = $(this).attr('id').substr(4); offMenu($nCurPos); }); $nav.bind('click', function(ev) { if ($nCurrentActive !== $(this).attr('id').substr(4)) { offActiveMenu($nCurrentActive); } $nav.removeClass('active on').addClass('off'); $(this).addClass('active').removeClass('off'); $nCurrentActive = $(this).attr('id').substr(4); }); $('#nav-logo').bind('click', function() { $nav.removeClass('active on').addClass('off'); $('#nav-1').addClass('active').removeClass('off'); }); function onMenu($nCurPos) { if ($('#nav-'+$nCurPos).hasClass('off') && !($('#nav-'+$nCurPos).hasClass('active'))) { $('#nav-'+$nCurPos).removeClass('off').addClass('on'); } }; function onScrollMenu($nCurPos) { if ($('#nav-'+$nCurPos).hasClass('off')) { $('#nav-'+$nCurPos).removeClass('off').addClass('on'); } }; function offActiveMenu($nCurPos) { $('#nav-'+$nCurPos).removeClass('active').addClass('off') } function offMenu($nCurPos) { if (!$('#nav-'+$nCurPos).hasClass('active')) { $('#nav-'+$nCurPos).removeClass('on').addClass('off'); } } //nav setup @ window scroll $(window).scroll(function() { $inview = $('section:in-viewport header').parent().attr('id'); if ($('a[hash=#' + $inview + ']') !== null) { $link = $('a[hash=#' + $inview + ']').parent().attr('id').substr(4); } if ($link != $nCurrentActive && scrolling == 1) { $nav.removeClass('active'); offMenu($nCurrentActive); $nCurrentActive = $link; $('#nav-'+$nCurrentActive).addClass('active'); onScrollMenu($nCurrentActive); } }); //window scroll setup $.localScroll.hash({ target: '#content', queue:true, duration:1500 }); $('nav').localScroll({ hash: true, duration: 400, easing: 'easeOutExpo', onBefore: function() {scrolling = 0; return scrolling}, onAfter: function() {scrolling = 1; return scrolling} });