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 相关文章推荐
Jquery 常用方法经典总结
Jan 28 Javascript
js中的scroll和offset 使用比较的实例与分析
Sep 29 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
Jun 07 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
Nov 30 Javascript
JavaScript、C# URL编码、解码总结
Jan 21 Javascript
Vue中的无限加载vue-infinite-loading的方法
Apr 08 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
微信小程序之左右布局的实现代码
Dec 13 Javascript
js实现双色球效果
Aug 02 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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(三)
2012/03/22 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
js css样式操作代码(批量操作)
2009/10/09 Javascript
jQuery随机切换图片的小例子
2013/04/18 Javascript
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
python列表操作使用示例分享
2014/02/21 Python
python抓取网页图片并放到指定文件夹
2014/04/24 Python
python动态性强类型用法实例
2015/05/09 Python
Python2.x版本中maketrans()方法的使用介绍
2015/05/19 Python
python和opencv实现抠图
2018/07/18 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
2019/08/08 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
客服专员岗位职责
2014/02/28 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
暑期学习心得体会
2014/09/02 职场文书
公司周年庆典标语
2014/10/07 职场文书
群众路线个人整改措施
2014/10/24 职场文书
小学运动会报道稿
2015/07/22 职场文书
大学生党课感想
2015/08/11 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL