知识点:onmousewheel,addEventListener,scrollTo,setTimeout
过程:
1.body 宽,高钉死,100vw,100vh,overflow:hidden 使得不出现滚动条,不然不好看
2.图片放进去,排起来,(注意:默认空隙的处理,可以使用flex布局,空隙就不见了)
3.制作相对于视窗的按钮,几张图片就几个按钮,(position: fixed计算一下高度,可以利用calc计算top使得上下居中)
4.美化一下,css写写
5.先写简单的按钮事件
6.写监听滑动事件(onmousewheel在火狐无效,DOMMouseScroll只在火狐有效)
react在componentDidMount的时候监听
7.补充写一下火狐的
9.测试检查一下。
完成啦,啦啦啦~
我的截图:
缺点:这里我是一直对页面进行监听,导致滑动过快对时候动画效果开始执行对时间延后。体现为滑动对轻,整个就流畅一点。
ps:写这种带计算带页面,我觉得是考验思维的,你可以对这里的知识点不熟练,但是你必须得能理解每一步的加加减减。
var timmer=requestAnimationFrame(function fn(){var s=document.querySelector("body").scrollTop
if(s>0){
s-=50
document.querySelector("body").scrollTop = s
timmer=requestAnimationFrame(fn)
}
})
当网页的向下滚动的时候,有些元素会产生细小的动画效果。然而直接用animate.css是不行的如果自己写判断位置和动画结合的话也是可以但是动画效果不是特理想需要多次调试,其次也是很麻烦的所以该插件帮我们 写好了,我们只需要在浏览器滚动到该盒子位置为他加上在animate.css我们需要的效果类名既可。WOW.js 依赖 animate.css,所以它支持 animate.css 多达 60 多种的动画效果,能满足您的各种需求。
兼容性能:;wow.js 使用了 querySelectorAll 方法,IE 低版本会报错。iE10+
缺点 动画效果执行一次 滑到顶部再往下滑动就无效了 需要页面刷新了