js实现标题无缝向上滚动
来源:互联网 发布:连续统假设知乎 编辑:程序博客网 时间:2024/05/18 00:05
用jQuery实现无缝向上滚动挺容易的,想用原生js进行自我学习一下,运用到无缝轮播的思想,有兴趣可以顺便实现一下无缝轮播,有些细节的东西需要注意,以后可能用上,写得不好,各位看官请见谅,话不多说,上代码:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>demo</title></head><style> *{list-style: none;margin:0;padding: 0;text-decoration: none;} .box{ position: relative; width: 20%; height: 30px; top:50px; left:50px; overflow-y: hidden; } #box-ul{ position: absolute; top:0; left:0; } #box-ul li{height:30px;line-height: 30px;}</style><body><div class="box"> <ul id="box-ul"> <li><a href="#">第一个标题</a></li> <li><a href="#">第二个标题</a></li> <li><a href="#">第三个标题</a></li> </ul></div></body><script> window.onload = function () { function getStyle(obj,styleName){ //获取元素当前style函数,currentStyle针对ie,getComputedStyle针对其他浏览器 if(obj.currentStyle){ return obj.currentStyle[styleName]; }else{ return getComputedStyle(obj,false)[styleName]; } } function timerFuc() { //定时器函数,五秒钟滚动一条数据 clearInterval(timer); timer = setInterval(function () { if(i == box.children.length-1) { box.style.top = '0px'; i = 0; } animateTop(box,(++i)*(-30),30); //此处第一个的30是li标签的高度,修改的时候这里得注意,第二个是speed },5000); } function animateTop(obj,topEnd,speed) { //滚动函数,object为对象,topEnd为top最终值,speed为滚动速度 clearInterval(obj.timer); obj.timer = setInterval(function () { var cur = parseInt(getStyle(obj,'top').slice(0,-2)); var curspeed = Math.ceil((cur - topEnd)/10); obj.style.top = cur - curspeed +'px'; if(curspeed == 0){ clearInterval(obj.timer); } },speed) } var i = 0; var timer; var box = document.getElementById('box-ul'); var node = document.getElementById('box-ul').firstElementChild.cloneNode(true); //此处需先克隆节点以便下一步的追加节点操作,类似于jq的clone操作,这地方需要注意,如果不克隆直接获取Element对象会有什么影响,请实践后进行思考。 box.appendChild(node); timerFuc(); //初始化需执行定时器函数 box.onmouseover = function () { clearInterval(timer); }; box.onmouseout = function () { timerFuc(); } };</script></html>
1 0
- js实现标题无缝向上滚动
- js实现文字向上无缝滚动
- js实现-新闻间歇性向上无缝滚动
- js无缝间隙向上滚动
- jQuery实现js新闻段落向上无缝滚动
- js无缝滚动-向上滚动[转载]
- 文字向上的无缝滚动JS
- js实现无缝滚动
- JS实现无缝滚动
- js实现无缝滚动
- javascript实现文字列表无缝向上滚动
- JavaScript实现垂直向上无缝滚动特效
- JavaScript实现文字列表无缝向上滚动
- 图片向上无缝滚动
- 文字向上无缝滚动
- 向上无缝滚动
- 文字向上无缝滚动
- 向上无缝滚动javascript
- 程序员安装完Ubuntu后
- 算法提高 c++_ch02_01
- android使用timer和timertask实现计时器
- C++作业4
- Ubuntu16.04搭建redis集群
- js实现标题无缝向上滚动
- iOS开发:关于UILabel、UIButton、UITextField文字下划线的设置方法(涉及到富文本的知识)
- 蚂蚁感冒
- java|android 使用SocketIO.jar连接nodejs websocket
- java学习笔记之——JDBC(连接mysql数据库)
- Linux系统weblogic服务器下部署应用报ds1数据源错
- webpack多页应用架构
- 使用Xcode的Instruments检测解决iOS内存泄露(leak)
- android 启动的空白以及一些小bug