DOM修改后如何找到scrollTop
How to find scrollTop after DOM modification
我正在开发移动应用程序,我们使用 AJAX 加载基于 Framework7 的页面,但由于我正在动态加载页面和内容,我的函数应该会更改 header' s 颜色不再有效。
这是我的功能:
function scroller(){
var target=$(window).scrollTop();
console.log(target);
if(target>=150){
$('.navbar').css({'background-color':'rgba(191, 141, 87, 1)', 'box-shadow':'0px 0px 5px black', 'transition': 'all 1s ease'});
}
else{
$('.navbar').css({'background-color':'rgba(191, 141, 87, 0)','box-shadow':'none'});
}
}
控制台显示 var 目标为 0,我猜这是因为我修改了 DOM 并添加了页面实例化时不存在的内容。
我怎样才能让我的功能发挥作用?谢谢
编辑:
我在 body 中调用我的函数:
<body onscroll="scroller();">
看下面的例子,希望你喜欢这样...
function scroller(){
var target=$(window).scrollTop();
console.log(target);
if(target>=150){
$('.navbar').css({'background-color':'rgba(191, 141, 87, 1)', 'box-shadow':'0px 0px 5px black', 'transition': 'all 1s ease'});
}
else{
$('.navbar').css({'background-color':'gold','box-shadow':'none'});
}
}
$(document).scroll(function(){
scroller();
})
.navbar{
position:fixed;top:0;background-color: gold;width:100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="navbar">
<p>
Header...
</p>
</div>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
我正在开发移动应用程序,我们使用 AJAX 加载基于 Framework7 的页面,但由于我正在动态加载页面和内容,我的函数应该会更改 header' s 颜色不再有效。
这是我的功能:
function scroller(){
var target=$(window).scrollTop();
console.log(target);
if(target>=150){
$('.navbar').css({'background-color':'rgba(191, 141, 87, 1)', 'box-shadow':'0px 0px 5px black', 'transition': 'all 1s ease'});
}
else{
$('.navbar').css({'background-color':'rgba(191, 141, 87, 0)','box-shadow':'none'});
}
}
控制台显示 var 目标为 0,我猜这是因为我修改了 DOM 并添加了页面实例化时不存在的内容。
我怎样才能让我的功能发挥作用?谢谢
编辑:
我在 body 中调用我的函数:
<body onscroll="scroller();">
看下面的例子,希望你喜欢这样...
function scroller(){
var target=$(window).scrollTop();
console.log(target);
if(target>=150){
$('.navbar').css({'background-color':'rgba(191, 141, 87, 1)', 'box-shadow':'0px 0px 5px black', 'transition': 'all 1s ease'});
}
else{
$('.navbar').css({'background-color':'gold','box-shadow':'none'});
}
}
$(document).scroll(function(){
scroller();
})
.navbar{
position:fixed;top:0;background-color: gold;width:100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="navbar">
<p>
Header...
</p>
</div>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>