在项目中,我们经常需要根据滚动条的位置去触发一些事件。以下是代码是 判断元素是否出现在可视区域来触发一些事件,比如淡出淡出、左右滑动等动画效果。
<div id="box">
</div>
<script>
$(window).scroll(function(){
if($('#box').offset().top >= $(window).scrollTop() && $('#box').offset().top < ($(window).scrollTop() + $(window).height())){
// 元素出现在可视区域后要做的事、、、
}else {
// 元素离开可视区域后要做的事、、、
}
})
</script>
举个例子:当#box 滚动到可视区域时 #box 中的 h1 透明度由 0 变成 1
<style>
#box h1 {
opacity: 0;
transition: all 1s;
--o--transition: all 1s;
--moz--transition: all 1s;
--webkit--transition: all 1s;
// 突然出现太生硬 加个过度吧
}
</style>
<div id="box">
<h1>可爱的h1</h1>
</div>
<script>
$(window).scroll(function(){
if($('#box').offset().top >= $(window).scrollTop() && $('#box').offset().top < ($(window).scrollTop() + $(window).height())){
$('#box h1').css('opacity','1');
// 元素离开可视区域后要做的事、、
}else {
$('#box h1').css('opacity','0');
// 元素离开可视区域后要做的事、、、
//当然你也可以让 h1 只出现 不消失 else 就可以什么都不写
}
})
</script>
