2
我試圖在網站上使用粘滯導航進行一些操作。我可以在除Firefox之外的所有瀏覽器中工作。Firefox未響應.addClass
我希望在窗口滾動時更改鏈接。
我想添加一個類來改變某個點的導航。
下面是在Chrome瀏覽器一直工作代碼:
<section id="nav">
<nav>
<ul>
<li id="p1"><a href="#b" id="nb" class="pill">Snap</a></li>
<li id="p2"><a href="#c" id="nc" class="pill">Organize</a></li>
<li id="p3"><a href="#d" id="nd" class="pill">Store</a></li>
<li id="p4"><a href="#e" id="ne" class="pill">Unify</a></li>
<li id="p5"><a href="#f" id="nf" class="pill">Share</a></li>
<li id="n-play" class="sticky-dl"><a href="https://play.google.com/store/apps/details?id=me.trunx">Get it on Google Play</a></li>
<li id="n-app" class="sticky-dl"><a href="https://itunes.apple.com/app/id739060178?mt=8">Download on the App Store</a></li>
</ul>
</nav>
</section>
的JavaScript/jQuery的
// Auto Nav Active Switching
var nav = $('#nav-sticky-wrapper').height();
var navh = nav+1;
var b = $('section#b').offset().top - navh;
var c = $('section#c').offset().top - navh;
var d = $('section#d').offset().top - navh;
var e = $('section#e').offset().top - navh;
var f = $('section#f').offset().top - navh;
var remove = $('nav ul li a');
setInterval(function() {
if ($(window).scrollTop() < b) {
$('section#nav ul').removeClass('stuck');
$('section#nav ul li.sticky-dl').fadeOut(250);
} else {
$('section#nav ul').addClass('stuck');
$('section#nav ul li.sticky-dl').fadeIn(250);
}
if ($(window).scrollTop() < c) {
$(remove).removeClass('active');
$('#nb').addClass('active');
} else if ($(window).scrollTop() >= c && $(window).scrollTop() < d) {
$(remove).removeClass('active');
$('#nc').addClass('active');
} else if ($(window).scrollTop() >= d && $(window).scrollTop() < e) {
$(remove).removeClass('active');
$('#nd').addClass('active');
//bonusoff();
} else if ($(window).scrollTop() >= e && $(window).scrollTop() < f) {
$(remove).removeClass('active');
$('#ne').addClass('active');
// Runs Bonus Animation upon Entry
bonus();
} else if ($(window).scrollTop() >= f) {
$(remove).removeClass('active');
$('#nf').addClass('active');
}
});
火狐是否不給setInterval什麼迴應?提前致謝!
你可以製作一個JSFiddle嗎? – joews
'setInterval'需要等待**延遲時間**。什麼是你想要的延遲?例如:'setInterval(function(){...},3000);' –
@SimchaKhabinsky非常感謝!這立即解決了問題。我希望我有足夠的代表提出你的答案。感謝真棒的答案。 :) –