JS左右无缝轮播功能完整实例


Posted in Javascript onMay 16, 2019

本文实例讲述了JS左右无缝轮播功能。分享给大家供大家参考,具体如下:

其中对上一页下一页按钮设置visibility属性是为了解决轮播中点击上一页下一页导致的bug,应为是a标签所以用了visibility属性,如果是按钮button可以直接设置在轮播过程中按钮不可点击,当然其他解决方法都可以,以实际为准

代码如下:换换图片就可以直接用

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>3water.com JS左右无缝轮播</title>
  <style>
    * {margin:0;padding:0;}
    #scrollImg{width:1000px;margin:100px auto;}
    #prev{float:left;line-height:250px;}
    #next{float:right;line-height:250px;}
    #div1 {width:800px;height:250px;margin:0px auto;position:relative;overflow:hidden;}
    #div1 ul {position:absolute;left:0;top:0;}
    #div1 ul li {float:left;list-style:none;width:200px;height:250px;}
    #div1 ul li img{width:100%;height:100%;}
  </style>
</head>
<body>
<div id="scrollImg">
  <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="prev">向左</a>
  <a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="next">向右</a>
  <div id="div1">
    <ul>
      <li><img src="image/0.jpeg" /></li>
      <li><img src="image/1.JPEG" /></li>
      <li><img src="image/3.jpg" /></li>
      <li><img src="image/4.jpeg" /></li>
    </ul>
  </div>
</div>
<script>
  window.onload=function(){
    var oDiv=document.getElementById("div1");
    var oUl=document.getElementsByTagName("ul")[0];
    var oLi=document.getElementsByTagName("li");
    var index=0;
    var timer;//定时器
    oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;//将轮播内容复制一份
    oUl.style.width=oLi[0].offsetWidth*oLi.length+"px";
    //移动速度
    var speed=-10;
    //控制滚动的方向
    var prev=document.getElementById("prev");
    var next=document.getElementById("next");
    //上一页
    prev.onclick=function(){
      if(index==4){
        index=1;
        oUl.style.left="0px";
      }else{
        index++;
        speed=10;
      }
      move();
    };
    //下一页
    next.onclick=function(){
      if(index==0){
        index=3;
        oUl.style.left=-oUl.offsetWidth/2+"px";
      }else{
        index--;
        speed=-10;
      }
      move();
    };
    function move(){
      timer=setInterval(function () {
        oUl.style.left=oUl.offsetLeft-speed+"px";
        var stop=-index*oLi[0].offsetWidth+"px";
        prev.style.visibility="hidden";
        next.style.visibility="hidden";
        if(oUl.style.left==stop){
          clearInterval(timer);
          prev.style.visibility="visible";
          next.style.visibility="visible";
        }
      },20);
    }
  }
</script>
</body>
</html>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript GUID生成器实现代码
Oct 31 Javascript
Jquery实现仿新浪微博获取文本框能输入的字数代码
Feb 22 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
Jan 26 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
May 03 Javascript
使用BootStrapValidator完成前端输入验证
Sep 28 Javascript
AngularJS实现根据变量改变动态加载模板的方法
Nov 04 Javascript
JQuery和PHP结合实现动态进度条上传显示
Nov 23 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
详解vuex commit保存数据技巧
Dec 25 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
Node.js Windows Binary二进制文件安装方法
May 16 #Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
May 16 #Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
May 16 #Javascript
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 #Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 #Javascript
怎样在vue项目下添加ESLint的方法
May 16 #Javascript
eslint 的三大通用规则详解
May 16 #Javascript
You might like
php REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
追求程序速度,而不是编程的速度
2008/04/23 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
JavaScript中的值类型详细介绍
2014/12/29 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
监听element-ui table滚动事件的方法
2019/03/26 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
Python实现读取json文件到excel表
2017/11/18 Python
python实现微信远程控制电脑
2018/02/22 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
详解python中的Turtle函数库
2018/11/19 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
Python:二维列表下标互换方式(矩阵转置)
2019/12/02 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
Python json读写方式和字典相互转化
2020/04/18 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
大学四年的个人自我评价
2014/01/14 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
导游词之山东孔庙
2019/11/04 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书