2016-04-24 124 views
1

我很新的編碼,並有一個基本的知識。 我正在做一個簡單的單頁網站,並使用了一點jquery使頂部的導航條只出現在滾動頁面的頂部元素('着陸頁')之後纔出現 - 爲了讓一個清潔工'登陸頁面'。.onscroll jquery不能在火狐工作

(我用這個方法來代替滾動過去固定的像素值,因爲它需要通過時,媒體查詢觸發適應網站的移動版本)

這精美的作品,直到我嘗試它在Firefox中 - 然後沒有任何反應。 現在完全失去。

下面是我通過計算器找到的原始代碼,並稍作修改。

謝謝你提前!

window.onscroll = function (oEvent) { 
 
    var mydivpos = document.getElementById("intro").offsetTop; 
 
    var scrollPos = document.getElementsByTagName("body")[0].scrollTop; 
 
    
 
    if(scrollPos >= mydivpos) 
 
    document.getElementById("bottomMenu").className = ""; 
 
    else 
 
    document.getElementById("bottomMenu").className = "hidden"; 
 
};
#bottomMenu { 
 
    position: fixed; 
 
    top: 0px; 
 
    left: 0px; 
 
    width: 100%; 
 
    height: 64px; 
 
    border: 4px solid #000; 
 
    background: white; 
 
    z-index: 100; 
 
} 
 

 

 

 
.hidden { 
 
    display: none; 
 
}
<!DOCTYPE html> 
 

 
<html> 
 
<head> 
 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
 
<meta charset=utf-8 /> 
 
<title>test</title> 
 
<style id="jsbin-css"> 
 

 
</style> 
 
</head> 
 
<body> 
 
    
 
    <div id="bottomMenu" class="hidden">HELLO</div> 
 
    a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br /> 
 
    <div id="intro">MYDIV</div> 
 
    a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br />a<br /> 
 
    
 
    
 
</body> 
 
</html>

回答

1

我相信document.getElementsByTagName( 「身體」)[0] .scrollTop(或的document.body.scrollTop)已被棄用,但有些瀏覽器仍依賴於它。

var scrollPos = document.getElementsByTagName("body")[0].scrollTop; 

要這樣:

var scrollPos = document.documentElement.scrollTop; 

但後來它不能在Chrome中使用了,如果你改變這一行

您的解決方案正常工作的Firefox。所以,你需要這樣做:

var scrollPos = document.documentElement.scrollTop || document.body.scrollTop; 

這裏是一個小提琴:https://jsfiddle.net/willemo/fyury33p/2/