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的event详解。
Sep 06 Javascript
jQuery获取地址栏参数插件(模仿C#)
Oct 26 Javascript
页面只能打开一次Cooike如何实现
Dec 04 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
Nov 01 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
Sep 20 jQuery
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
Dec 05 jQuery
JS实现方形抽奖效果
Aug 27 Javascript
React项目动态设置title标题的方法示例
Sep 26 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
对vuex中getters计算过滤操作详解
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.MVC的模板标签系统(五)
2006/09/05 PHP
php setcookie函数的参数说明及其用法
2014/04/20 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP实现根据时间戳获取周几的方法
2016/02/26 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
javascript eval函数深入认识
2009/02/21 Javascript
JavaScript CSS修改学习第三章 修改样式表
2010/02/19 Javascript
js jquery数组介绍
2012/07/15 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
[46:40]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
python中for用来遍历range函数的方法
2018/06/08 Python
python装饰器的特性原理详解
2019/12/25 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
python语言的优势是什么
2020/06/17 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
班组长工作职责
2013/12/25 职场文书
邓小平文选读书笔记
2015/06/29 职场文书
股东出资协议书
2016/03/21 职场文书
python实现简单反弹球游戏
2021/04/12 Python