1.实现原理:setInterval定时器,让某元素position的left属性定时滚动,使用到js中的元素的offsetLeft属性。

2.案例:1.css的实现是外div是4张图片的总宽度,设置relative然后overflow隐藏。子代有ul层设置为absolute;left属性移动时都是移动整个ul层的。;

2.4张图片无缝滚动,再复制4张(1,2,3,4)在第4张后面,li下有4张图片,获取li的offsetWidth(),然后算出ul的总宽度,当包着4张图片的ul层的offsetLeft滚动到一半的时候,将前4张的left变成0,这样滚动的时候就会无缝滚动了。设置ul层的offsetLeft来控制滚动。

    3.demo地址:http://www.alanjs.comeze.com/study/demo11setInterval.html

<script type="text/javascript">
window.onload = function(){
var slide = document.getElementById("slideImg");
var moveUl = document.getElementById("moveUl");
var aLi = slide.getElementsByTagName("li");
var timer = null;
var speed = -2;
var prev = document.getElementById("prev");
var next = document.getElementById("next"); moveUl.innerHTML = moveUl.innerHTML + moveUl.innerHTML; //先复制4张图片放在后面 moveUl.style.width = aLi[0].offsetWidth*aLi.length + "px"; //获取一个li的宽度来设置ul层的总宽度
timer = setInterval(move,30) slide.onmouseover = function(){
if(timer){
clearInterval(timer);
}
} slide.onmouseout = function(){
timer = setInterval(move,30);
} prev.onclick = function(){
speed = -2;
} next .onclick = function(){
speed = 2;
} function move(){
if(moveUl.offsetLeft < -moveUl.offsetWidth/2){ //向左滚动,当滚动到一半的时候,前面4张就跳到后面
moveUl.style.left = "0";
}
if(moveUl.offsetLeft > 0){
moveUl.style.left = -moveUl.offsetWidth/2 + "px";        //向右滚动,当一开始滚动的时候,ul的left属性大于0,后面4张就立即跳到前面
      } 
     moveUl.style.left = moveUl.offsetLeft+speed + "px"; //设置ul层的offsetLeft来控制滚动
  }
}
</script>
<style>
#wrap{width:1603px;margin:0 auto;height:300px;}
#sliderImg{width:1308px;height:203px;position:relative;overflow:hidden;border:1px solid red;}
#sliderImg ul{positin:absolute;left:0px;top:0px;}
#sliderImg ul li{list-style:none;float:left}
</style> <body>
<div id="wrap">
<div id="sliderImg">
<ul id="moveUl">
<li><a href="javascript:;"><img src="data:images/slide5.jpg" /></a></li>
<li><a href="javascript:;"><img src="data:images/slide6.jpg" /></a></li>
<li><a href="javascript:;"><img src="data:images/slide7.jpg" /></a></li>
<li><a href="javascript:;"><img src="data:images/slide8.jpg" /></a></li>
</ul>
</div>
<a id="prev" href="javascript:;">prev</a>
<a id="next" href="javascript:;">next</a>
</div>
</body>

2015.7.11js-10(无缝滚动)的更多相关文章

  1. js函数——倒计时模块+无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  2. js函数——倒计时模块和无缝滚动

    倒计时 效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  3. 自己写了一个无缝滚动的插件(jQuery)

    效果图: html代码: 1 <h1>无缝滚动,向右滚动</h1> 2 <ul id="guoul1"> 3 <li><img ...

  4. js 无缝滚动效果学习

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

  5. liMarquee演示12种不同的无缝滚动效果

    很实用的一款liMarquee演示12种不同的无缝滚动效果 在线预览 下载地址 实例代码 <!DOCTYPE html> <html lang="zh-CN"&g ...

  6. js实现标准无缝滚动

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

  7. JavaScript(六)——实现图片上下或者左右无缝滚动

    /*! jQuery v1.8.3 jquery.com | jquery.org/license */ (function(e,t){function _(e){var t=M[e]={};retu ...

  8. scrollLeft的相关问题(js横向无缝滚动)

    <div id="demo"> <div id="innerdemo"> <div id="demo1"> ...

  9. JavaScript----marquee滚动标签 图片无缝滚动 插入百度地图

    页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...

随机推荐

  1. 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包

    iostat sysstat 包里面包括 sar 和 iostat [root@centos7 ~]# iostat Linux 3.10.0-693.2.2.el7.x86_64 (centos7. ...

  2. html5 返回当前地理位置的坐标点(经纬度)

    BAIDU <!DOCTYPE html> <html> <body> <p id="demo">点击这个按钮,获得您的坐标:< ...

  3. linux mysql远程连接的命令

    mysql -u 用户名 -h 远程IP地址 -p  随后输入密码. 要确认远程数据库3306端口是否开放,mysql服务是否启动. hadoop@Master:~$ mysql -u root -h ...

  4. HTML5 FileReader

    利用HTML5中的FileReader类,动态切换af中Panel的背景,动态设置img元素的图片 1 if(FileReader){ 2 $('.panel').on("tap" ...

  5. GCT之数学公式(几何部分)

    一.平面图形   二.空间几何体

  6. MySQL死锁分析

    死锁问题背景 做MySQL代码的深入分析也有些年头了,再加上自己10年左右的数据库内核研发经验,自认为对于MySQL/InnoDB的加锁实现了如指掌,正因如此,前段时间,还专门写了一篇洋洋洒洒的文章, ...

  7. TensorFlow安装,升级,基本操作

    一. 安装 ubuntu 16 python 2.7 pip install tensorflow 测试安装完成效果: 查看tensorFlow版本python import tensorflow a ...

  8. Spring的JdbcTemplate与其事务

    JdbcTemplate:http://lehsyh.iteye.com/blog/1579737 JdbcTemplate with TransactionTemplate:http://www.c ...

  9. [原]unity3D 相机跟随

    using UnityEngine;using System.Collections; public class CameraFollow : MonoBehaviour {            p ...

  10. 【D】分布式系统的CAP理论

    2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想.2年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP.之后, ...