纯js无缝滚动
HTML代码
<!--父容器要使用overflow: hidden;-->
<div id="imgsList" style="height:150px;width:980px;overflow: hidden;">
<!--滚动容器-->
<div id="marquee_self">
<ul id="marquee_ul">
<li><img src="" width="180px" height="100px"></li>
<li><img src="" width="180px" height="100px"></li>
<li><img src="" width="180px" height="100px"></li>
</ul>
</div>
</div>
CSS代码
#marquee_self *{
margin:;
padding:;
}
#marquee_self{
width: 1620px; //所有图片长度个数*width
height: 100px; //图片高度
//margin: 100px auto; 居中
background-color: #646464;
position: relative;
overflow: hidden;
}
#marquee_self ul{
position:absolute;
left:;
top:;
overflow: hidden; //li中超出部分隐藏掉
background-color: #3b7796; //背景色用来看问题
}
#marquee_self ul li{
float: left; //左对齐变为图片水平
width: 180px; //图片宽度
height: 100px; //图片高度
list-style: none; //无间隙
}
JS代码
<script type="text/javascript">
window.onload = function(){
var oDiv = document.getElementById('marquee_self'); //容器节点
var oUl = document.getElementById('marquee_ul'); //ul节点
var speed = -2; //初始化速度,默认往左 oUl.innerHTML += oUl.innerHTML;//ul中图片内容翻倍
var oLi= oUl.getElementsByTagName('li'); //获取ul节点下所有li集合
oUl.style.width = oLi.length*180+'px';//设置ul的宽度翻倍后的宽度,使图片可以放下 /*var oBtn1 = document.getElementById('btn_left'); 左移动按钮
var oBtn2 = document.getElementById('btn_right'); 右移动按钮*/ function move(){
if(oUl.offsetLeft<-(oUl.offsetWidth/2)){ //向左滚动,当向左滚动超过总ul长度一半时
oUl.style.left = 0; //变为从头开始
} if(oUl.offsetLeft > 0){ //向右滚动,当靠右的图1移出边框时
oUl.style.left = -(oUl.offsetWidth/2)+'px';
} oUl.style.left = oUl.offsetLeft + speed + 'px'; //图片移动
} /*oBtn1.addEventListener('click',function(){ //向左移动按钮点击事件
speed = -2;
},false);
oBtn2.addEventListener('click',function(){ //向右移动按钮点击事件
speed = 2;
},false);*/ var timer = setInterval(move,30);//全局变量 ,保存返回的定时器 oDiv.addEventListener('mouseout', function () { //鼠标移开添加计时器
timer = setInterval(move,30);
},false);
oDiv.addEventListener('mousemove', function () { //鼠标移入清除定时器
clearInterval(timer);
},false);
}
</script>
纯js无缝滚动的更多相关文章
- 手写JS无缝滚动插件
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- js无缝滚动原理及详解[转自刹那芳华]
刚刚接触JS,网上找了一些关于无缝滚动的教程,但都大同小异,对我这种新手来说也只是会用,不知道什么意思,想要自己写个更是一头雾水.于是找了一些资料,详细说明一下JS无缝滚动的原理,相信看过这篇文章之后 ...
- js 无缝滚动效果学习
<!DOCTYPE html> <html> <head> <title>无缝滚动测试</title> <meta http-equi ...
- 纯css3无缝滚动
纯css3无缝向左滚动: HTML: <div class="marqueCon"> <div class="marque"> < ...
- js无缝滚动跑马灯
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JS无缝滚动
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...
- [Js]无缝滚动
效果: 1.默认缓慢往左滚动 2.放到左箭头上还是向左滚动,放到右箭头上向右滚动 3.放到图片上停止滚动,移出继续滚动 思路: 1.计算图片列表ul的宽度 2.开启定时器,使其向左边距不断增大,造成向 ...
- JS——无缝滚动
1.描述——无缝滚动图片 2.代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- js无缝滚动,不平滑(求高人指点)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
随机推荐
- Bootstrap3基础 dropdown divider 下拉列表中的分割线
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- 解决跨域(CORS)问题
为什么会有跨域问题 是因为浏览器的同源策略是对ajax请求进行阻拦了,但是不是所有的请求都给做跨域,像是一般的href属性,a标签什么的都不拦截 解决跨域问题的两种方式 JSONP 推荐参考 CO ...
- Jenkins serving Cake: our recipe for Windows
https://novemberfive.co/blog/windows-jenkins-cake-tutorial/ Where we started, or: why Cake took the ...
- P2163 [SHOI2007]园丁的烦恼(cdq分治)
思路 其实是cdq的板子 题目要求询问对于每个给出的xi,yi,xj,yj形如xi<=x<=xj.yi<=y<=yj的x,y对数有多少组 改成四个询问,拆成四个前缀和的形式后就 ...
- 题解——Codeforces Round #508 (Div. 2) T2 (构造)
按照题意构造集合即可 注意无解情况的判断 #include <cstdio> #include <algorithm> #include <cstring> #in ...
- $mount方法是用来挂载我们的Vue.extend扩展的
html <body> <div id="app"> <diy></diy> </div> </body> ...
- IDEA入门级使用教程----你怎么还在用eclipse?
http://blog.csdn.net/qq_31655965/article/details/52788374
- git服务器搭建全程
为了后续安装能正常进行,我们先来安装一些相关依赖库和编译工具 [root@VM_95_113_centos ~]# yum install curl-devel expat-devel gettext ...
- echo -n 和echo -e 参数意义
echo -n 不换行输出 $echo -n "123" $echo "456" 1 2 最终输出 123456 而不是 123 456 1 2 3 4 5 6 ...
- 【BZOJ】3575: [Hnoi2014]道路堵塞
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3575 大概的做法是,按照顺序枚举每一条要删去的边,(假设当前点为$u$,在最短路径上的下一 ...