时间:2021-07-01 10:21:17 帮助过:38人阅读
当我们浏览一些网页时我们会发现页面的的边上会有广告图片,当滚动滚动条的时候这些广告图片会跟随性的随页面一起运动(这里我叫它为广告框)。一些网页的广告框是固定在浏览器上的用background:fixed;便可实现。这里我用JavaScript简单的制作了一个随滚动缓冲运动的广告框。
制作的原理比较简单,大家都有一个完美的js运动框架,这里的缓冲运动需要用到。这里的广告框设定的是跟随滚动条缓冲运动并运动到浏览器的中间位置。需要理解的是运动距离的计算和一些细节上的处理(一些BUG的预防)
这是我在这里使用的一个js运动框架,传递的参数只有一个并不是完美运动框架。传递的参数是广告框的运动距离,因此我在运动框架内又获取了一次对象。
样式和布局代码
<style> #p1{ width: 100px; height: 100px; background: #ccc; position: absolute; //使用绝对定位让其处于右上方 right: 0; top: 0; </style> <body style="height: 2000px;"> <p id="p1"></p> </body>
js代码
这里增加了.onscroll属性目的是当滚动滚动条的时候也加载页面,广告框就能随着滚动条一起运动了。还增加了.onresize属性,由于我要实现广告框一直是运动到浏览器的中间位置,然而当我改变浏览器高度的时候也要实现广告框的运动,所以增加该属性,当浏览器大小改变时加载。
当滚动条滚动到菜单位置时,怎样让他固定到浏览器顶端,当滚动条回到他原来位置时,他就停在哪里。
网上很多都是要引用一个jquery插件,感觉很麻烦。
该怎样写一个这样的效果呢?
大致写个思路吧,肯定是自己调试比直接引用jQuery插件麻烦大家才会纷纷引插件来用
用onscroll事件判断用户滚动的位置,用菜单元素的offsetTop属性判断它的显示位置
如果滚动到了菜单到顶的时候,把菜单的display改成fixed
等下一个菜单滚到某个适当的位置时,把原来菜单的diplay改回来,把新菜单改成fixed
以上就是使用JavaScript如何完成跟随滚动缓冲运动广告框?的详细内容,更多请关注Gxl网其它相关文章!