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无缝滚动的更多相关文章

  1. 手写JS无缝滚动插件

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. js无缝滚动原理及详解[转自刹那芳华]

    刚刚接触JS,网上找了一些关于无缝滚动的教程,但都大同小异,对我这种新手来说也只是会用,不知道什么意思,想要自己写个更是一头雾水.于是找了一些资料,详细说明一下JS无缝滚动的原理,相信看过这篇文章之后 ...

  3. js 无缝滚动效果学习

    <!DOCTYPE html> <html> <head> <title>无缝滚动测试</title> <meta http-equi ...

  4. 纯css3无缝滚动

    纯css3无缝向左滚动: HTML: <div class="marqueCon"> <div class="marque"> < ...

  5. js无缝滚动跑马灯

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. JS无缝滚动

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...

  7. [Js]无缝滚动

    效果: 1.默认缓慢往左滚动 2.放到左箭头上还是向左滚动,放到右箭头上向右滚动 3.放到图片上停止滚动,移出继续滚动 思路: 1.计算图片列表ul的宽度 2.开启定时器,使其向左边距不断增大,造成向 ...

  8. JS——无缝滚动

    1.描述——无缝滚动图片 2.代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  9. js无缝滚动,不平滑(求高人指点)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

随机推荐

  1. k倍区间 前缀和【蓝桥杯2017 C/C++ B组】

    标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...

  2. P4172 [WC2006]水管局长

    P4172 [WC2006]水管局长 前言 luogu数据太小 去bzoj,他的数据大一些 思路 正着删不好维护 那就倒着加,没了 LCT维护他的最小生成树MST 树上加一条边肯定会有一个环 看看环上 ...

  3. Smartmontools硬盘检测工具

    安装: 下载 命令使用: 查看驱动器信息: $ smartctl -i D: smartctl 6.6 2017-11-05 r4594 [x86_64-w64-mingw32-w10-b17134] ...

  4. 2018 蓝桥杯省赛 B 组模拟赛(五)

    A模拟 代码1 #include<bits/stdc++.h> using namespace std; int n = 101; int a[120][120]; int ans = 0 ...

  5. 【修改缓存路径】修改Gradle缓存路径的几种方式

    起因 Android Studio的gradle在缓存处理上有时候会莫名其妙的出问题,必要时需要手动删除缓存,然后重新编译.有时也有出于其他考虑指定gradle缓存路径. 方法1:修改gradle文件 ...

  6. P2617 Dynamic Rankings(带修主席树)

    所谓带修主席树,就是用树状数组的方法维护主席树的前缀和 思路 带修主席树的板子 注意数据范围显然要离散化即可 代码 #include <cstdio> #include <cstri ...

  7. ssh中的 Connection closed by ***

    另一台电脑的 mac/windows10/win7 都可以连接,就这台电脑不可以,但是能 ping 通, ssh 时总是 Connection reset by xxx 或 Connection cl ...

  8. 2、zabbix工作原理及安装配置

      Zabbix架构:zabbix基本术语.zabbix安装.配置和应用 Zabbix架构中的组件: zabbix-server:C语言    zabbix-server和zabbix-agent通过 ...

  9. JAVA之经典算法

    package Set.Java.algorithm; import java.util.Scanner; public class algorithm { /** * [程序1] 题目:古典问题:有 ...

  10. CSS3动画详解(结合实例)

    一.使用CSS3动画代替JS动画 JS动画频繁操作DOM导致效率非常低 在频繁的操作DOM和CSS时,浏览器会不停的执行重排(reflow)和重绘(repaint) 可以避免占用JS主线程 这边就不细 ...