2016-02-03 66 views
1

我的頁面有一個粘滯的導航條,它的'粘性'工作正常,但導航欄的2個主要內部元素*的行爲並不存在。 2個主要內部元素是徽標滑出式導航欄(點擊激活)。預期的行爲如下:JS:有沒有方法可以在點擊函數中調用滾動函數,或將兩者結合起來?

  • 的標誌(在橙色條的中心)必須「隱藏」在默認情況下,只有 變得可見,當用戶向下滾動80px從頂部(或 滾動高達80px從文件頂部)。

  • 該標誌必須儘快隱藏在用戶在文檔頂部的80px頂部滾動。

  • 但是,在滑出式導航欄處於活動狀態的同時,徽標必須永遠不可見。當導航欄不活動時,它必須再次可見。

  • 與徽標不同,導航欄圖標必須始終可見,並且徽標必須爲
    ,它必須是粘性的。

jsfiddle中,所有預期行爲都會顯示出來,但只能滾動,而不能點擊。即。滾動下來超過80px後,徽標將可見(這很好),但當navbar圖標被點擊到活動狀態時(除非nav元素已處於活動狀態),該徽標不會隱藏。這個問題在我滾動的那一刻就被解決了,但是在點擊的時候並不是我想要發生的事情。

我知道爲什麼會發生,這是因爲雖然我已經照顧所有這些條件在$(window).scroll(function(),我也沒有在$("#menu-opener").click(function()只是因爲我不能使用scrollTop的()那裏,無論是我能成功結合這兩個功能。

那麼,我是否可以通過組合函數,在click函數中調用scrollTop()或其他方法來解決此問題?將不勝感激任何幫助。

請注意:當我說「導航欄的兩個主要內部元件」,其實我已經放在標識和滑出式導航欄在單獨的div並希望它繼續下去的話

回答

2

那麼爲什麼你不能在那裏使用scrollTop?

是不是這個預期的行爲:

https://jsfiddle.net/91gxLvbb/4/

您可以檢查scrollTop的:

if($(window).scrollTop() > 80) 
+0

@吉榮是的,謝謝,這是預期的行爲 - 因爲某種原因它是在我的本地主機上凍結 - 我試圖立即看到問題。 –

+0

是的 - 現在在localhost上工作!謝謝。 –

0

https://jsfiddle.net/91gxLvbb/6/

我加#menulogo:

$("#menu-opener").click(function(){ 
    $("#menu-opener, #menu-opener-inner, #menu, #menulogo").toggleClass("active"); 
}); 

而到了CSS:

#menulogo.active #logoflag{display:none} 
相關問題