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

pc120
  • 562
回复
阅读 9.6k
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来触发事件,简单来说就是滚轮距离到你这一页就执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏