$(document).scroll(function(){
//获取滚动条滚动的距离
var scrollH=$(document).scrollTop();
if(scrollH < 10){
$(".mydiv").addClass("animatediv");
}else if( 10 < scrollH < 20){
$(".mydiv").removeClass("animatediv").addClass("noaniamte");
}else{
$(".mydiv").addClass("animatediv");
}
})
css代码:
.mydiv{
width: 300px;
height: 200px;
background: #000;
text-align: center;
opacity: 0.2;
}
.animatediv{
margin-left: 500px;
transition: all 2s;
-webkit-transition:all 2s ease;
}
.noaniamte{
margin-left: 0;
transition: all 2s;
-webkit-transition:all 2s ease;
}
HTML
<div style="width:1000px; height: 2000px;">
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
<div class="mydiv"></div>
</div>
这难道是浏览器滚动机制的原因吗?有遇到过这样的问题吗?
这个是因为往上滚动的时候这个属性noaniamte一直没有去掉,每次判断结束不论什么情况都先把noaniamte这个属性去掉就没问题了,我稍微修改了一下
if(scrollH < 200){
$(".mydiv").removeClass("noaniamte").addClass("animatediv");
}else if( 200 < scrollH < 400){
$(".mydiv").removeClass("animatediv").addClass("noaniamte");
}else{
$(".mydiv").removeClass("noaniamte").addClass("animatediv");
}
if( 10 < scrollH < 20)
==》
if( 10 < scrollH &&scrollH < 20)