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 相关文章推荐
js由下向上不断上升冒气泡效果实例
May 07 Javascript
AngularJS动态绑定HTML的方法分析
Nov 07 Javascript
js异步编程小技巧详解
Aug 14 Javascript
vue-cli中打包图片路径错误的解决方法
Oct 26 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
Dec 27 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
Jan 16 Javascript
PM2自动部署代码步骤流程总结
Dec 10 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
Apr 25 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 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中实现简单的ACL 完结篇
2011/09/07 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
判断js对象是否拥有某一个属性的js代码
2013/08/16 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
pytorch permute维度转换方法
2018/12/14 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
在Django下创建项目以及设置settings.py教程
2019/12/03 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
伦敦的高级牛仔布专家:Trilogy
2018/08/06 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
委托书模板
2014/04/04 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
学习经验交流会总结
2015/11/02 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python