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 相关文章推荐
三种方式获取XMLHttpRequest对象
Apr 21 Javascript
javascript自定义右键弹出菜单实现方法
May 25 Javascript
基于JS2Image实现圣诞树代码
Dec 24 Javascript
JavaScript提高性能知识点汇总
Jan 15 Javascript
详述JavaScript实现继承的几种方式(推荐)
Mar 22 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
js和jquery中获取非行间样式
May 05 jQuery
jstree单选功能的实现方法
Jun 07 Javascript
Node.js 中使用 async 函数的方法
Nov 20 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 Javascript
ElementUI之Message功能拓展详解
Oct 18 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 JSON格式数据交互实例代码详解
2011/01/13 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
jquery.validate使用时遇到的问题
2015/05/25 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
2015/11/17 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
2019/04/10 Javascript
javascript网页随机点名实现过程解析
2019/10/15 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
python实现封装得到virustotal扫描结果
2014/10/05 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Java分治归并排序算法实例详解
2017/12/12 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
python3+PyQt5实现自定义流体混合窗口部件
2018/04/24 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python数据存储之 h5py详解
2019/12/26 Python
Django实现celery定时任务过程解析
2020/04/21 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
德国拖鞋网站:German Slippers
2019/11/08 全球购物
数控专业毕业生求职信
2014/06/12 职场文书
推广活动策划方案
2014/08/23 职场文书
2014年店长工作总结
2014/11/17 职场文书
检讨书模板
2015/01/29 职场文书
房地产项目合作意向书
2015/05/08 职场文书
简爱电影观后感
2015/06/10 职场文书
感恩教育观后感
2015/06/17 职场文书
学子宴致辞大全
2015/07/27 职场文书
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python