2016-11-30 138 views
1

我試圖讓一個元素更改位置固定滾動某一點後,但是沒有任何反應時滾動。我有<script src="stiler/jquery-3.1.1.min.js"></script>引用jQuery在<head>。滾動時什麼都沒有發生。在DOM控制檯中沒有錯誤消息,沒有任何東西。jquery沒有響應滾動

$(document).ready(function(){ 
 
var wrap = $('#header-wrap'); 
 

 
$(window).on('scroll', function(e) { 
 
    
 
    if (this.scrollTop > 147) { 
 
    wrap.addClass('fix'); 
 
    } else { 
 
    wrap.removeClass('fix'); 
 
    } 
 
    
 
}); 
 
});
body { 
 
    background-color: grey; 
 
    margin: 0; 
 
    min-height: 300vh; 
 
} 
 
#header-wrap { 
 
    top: 0; 
 
    width: 100%; 
 
} 
 
#redline { 
 
    top: 0; 
 
    left: 0; 
 
    width: 100%; 
 
    position: fixed; 
 
    height: 10px; 
 
    background-color: #b30027; 
 
    z-index: 99; 
 
} 
 
#velkommen { 
 
    height: 300px; 
 
    width: 100%; 
 
    background-color: white; 
 
    position: relative; 
 
    top: 10px; 
 
    margin-bottom: -60px; 
 
} 
 
#header { 
 
    position: relative; 
 
    left: 0; 
 
    width: 100%; 
 
    background-color: white; 
 
    height: 60px; 
 
} 
 
.fix #header { 
 
    position: fixed; 
 
    top: 10px; 
 
} 
 
h1 { 
 
    margin: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<header id="header-wrap"> 
 
    <div id="redline"></div> 
 
    <div id="velkommen"></div> 
 
    <div id="header"> <!--This tag should get class="fix"--> 
 
    <h1>#HEADER</h1> 
 
    </div> </header>

+0

您的示例中存在一些差異。在你描述的問題中你已經列出了jQuery v3.1.1,但是在你的代碼片段中你有2.1.1。在最後一次關閉' disinfor

+0

中。代碼不是包裹在'$(document).ready()'中,沒有。現在,使用與代碼段中完全相同的代碼。該片段沒有列出3.1.1 jquery。 – student42

回答