2017-06-29 63 views
-2

嗨我有一個粘性導航jQuery添加背景顏色的滾動頂部100px或更多。這是jQuery的。jQuery如果然後

$(window).scroll(function() { 
    if ($(document).scrollTop() > 100) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    }); 

我想做的僅僅只是增加一個「和」後「如果($(文件).scrollTop()> 100)」只有當窗口大小大於768px運行此。這是我試過但沒有工作,我的jQuery是一種基本如此裸露在我身上。

$(window).scroll(function() { 
    if ($(document).scrollTop() > 100) && ($(window).width() > 768) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    }); 

希望有任何幫助。

感謝所有

+0

請您解釋更多? –

+1

你唯一犯的錯誤就是做這個'if(a)&&(b)'而不是'if(a && b)'這跟jQuery沒有關係,只是javascript語法錯誤 – Jamiec

+0

@Manjeet Thakur簡單將第一個jQuery代碼我張貼上述我想要的代碼運行僅當屏幕大於768px – rufus

回答

1

根據其他答案,主要問題是您的if語法。要結合兩個(或更多)的條件下,你做裏面的括號這樣

if(a && b){ ... } 

然而,有一個與你的代碼中的另一個問題,因爲你預期它。你的邏輯目前會說(在僞代碼)

if scrolled beyound 100px and the screen is greater than 768px 
    add a class 
else 
    remove a class 

從邏輯上講,這意味着在屏幕上比768px較小它就會不斷地試圖刪除類當用戶滾動。

要改變這一點,首先將所有內容都包含在if中檢查屏幕大小,然後if判斷是否添加或刪除類。

$(window).scroll(function() { 
    if($(window).width() > 768){ 
    if ($(document).scrollTop() > 100) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    } 
}); 
+0

這真是太好了,非常感謝我深入分析了我做錯了什麼以及如何糾正它。非常感謝。 – rufus

1

你增加額外()在你if條件,所以你只是需要這種

if ($(document).scrollTop() > 100) && ($(window).width() > 768) 

if ($(document).scrollTop() > 100 && $(window).width() > 768) 

更換然後,它會爲你工作完美。

+1

這是正確的......但是,解釋問題的原因可能更好,而不是僅僅說「將此更改爲此」。 –

+0

好吧,你是對的 –

+0

這非常非常確實非常感謝@BibhudattaSahoo – rufus