2016-05-21 78 views
-3

我想寫一個簡單的JavaScript語句。Javascript If or statement

if ($(window).scrollTop() > 400) || if (!($(window).scrollTop() + $(window).height() > $(document).height() - 500)) { 
     $nav.addClass('show'); 
} 

基本上,如果用戶滾動超過400top超過500bottom我想補充類show

+4

使用'if(條件1 ||條件2 ||條件n)'。 [if ... else'的MDN文檔](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/if...else)。 –

+0

請在您的問題中說明問題。如果問題爲什麼不起作用?在這種情況下,你需要解釋爲什麼它不起作用。包含有關您看到的控制檯錯誤的信息。還包括有關您如何嘗試解決問題以及卡住的位置的信息。 –

+0

它不會刪除頁面底部的類 – user2127403

回答

3

爲了解決這樣的問題,你需要做一些所謂的「調試」。有許多獨立的調試技術。一個基本的原則是不斷更換小件或刪除件,直到問題消失,或者出現可以更容易理解的錯誤。

同你說

if ($(window).scrollTop() > 400) || if (!($(window).scrollTop() + $(window).height() > $(document).height() - 500)) { 
    $nav.addClass('show'); 
} 

你會在控制檯得到一個錯誤。打開控制檯並查看錯誤。 (如果你不知道控制檯是什麼,那麼在你做其他事情之前,先把你所做的一切都弄清楚,然後再學習。)假設你不知道錯誤信息是什麼問題。

在這種情況下,用一個簡單的true替換if條件的第一項:

if (true || if (!($(window).scrollTop() + $(window).height() > $(document).height() - 500)) { 
    $nav.addClass('show'); 
} 

您將繼續得到一個錯誤。告訴你,這個問題是不是條件的

($(window).scrollTop() > 400) 

部分。假設您仍然無法理解錯誤信息,或者找出如何解決這個問題。所以接下來,另一個true更換條件的第二部分:

if (true || if (true)) { 
    $nav.addClass('show'); 
} 

在這一點上,你會得到一個控制檯錯誤消息說:

Uncaught SyntaxError: Unexpected token if

這是不太可能的初始if是造成這個問題;這顯然是有效的JavaScript語法。所以問題必須是條件內的第二個if。你現在可以跳到這樣一個結論,即你不需要,也不一定要在條件內放置第二個if聲明。去掉它。您的問題已解決,無需依賴慷慨的SO人來識別程序中的每個語法錯誤,並且您可以繼續並完成您的項目。

+0

提問者還需要一些時間來學習JavaScript語法。 –

+0

如果(($(window).scrollTop()> 400)||($(window).scrollTop()+ $(window).height()<$(document).height()有效,我將其固定到此 ) - 500)){ 但是它仍然是從頁面底部添加類甚至500像素:( – user2127403

+2

然後你有一個與算術不同的問題,現在你需要調試它。打開調試器,在此行上放置一個斷點,並檢查每個表達式的值。我相信你很快就會發現問題。這是程序員如何調試他們的程序。 –