如何滑动页面,当元素出现在当前屏幕时,才执行动画

pc120
  • 562
评论
阅读 9.1k
4 个回答

图片描述

看上图

你问的效果就是,橙色容器从下方进入可视区域时(或者进入一段高度后),容器内的动画播放。

var eTop=$(element).offset().top;//橙色容器距离整个页面顶部的距离
var wTop=$(window).height();//绿色框可视区域的高度
window.onresize=funciton(){
var wTop=$(window).height();//缩放窗口这个高度会改变,需要再取得
}
$(window).scroll(funciont(){
  var dTop = $(document).scrollTop();//绿色框可视区域上面到黑色页面顶部的距离,会实时改变
});

所以当橙色容器进入可视区域怎么判断?

//放在scroll事件里面
if(dTop+wTop > eTop){//动画播放事件}

就这样,当可视区域上面的高度+可视区域高度>容器距离顶部高度,我们就知道容器进入【可视区底部】了
如果你想让容器进入一段距离(比如100px)再触发动画?

//放在scroll事件里面
if(dTop+wTop-100 > eTop){//动画播放事件}

检测浏览器滚动事件就好了,不用插件。

通过js检测scollTop来触发事件,简单来说就是滚轮距离到你这一页就执行

康哥
  • 4
新手上路,请多包涵

这个案例非常棒,但是有个小错误,function拼写错误!

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏