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的横向滚动条(滑动条)
Feb 24 Javascript
jQuery插件开发全解析
Oct 10 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
老司机带你解读jQuery插件开发流程
May 16 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
May 24 Javascript
详解Webpack多环境代码打包的方法
Aug 03 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
详解a标签添加onclick事件的几种方式
Mar 29 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
Jul 20 Javascript
Vue常用API、高级API的相关总结
Feb 02 Vue.js
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
IIS+PHP+MySQL+Zend配置 (视频教程)
2006/12/13 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
php中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
javascript call方法使用说明
2010/01/11 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
浅谈JavaScript编程语言的编码规范
2011/10/21 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
鼠标悬停小图标显示大图标
2016/01/22 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
Python实现模拟登录及表单提交的方法
2015/07/25 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python logging设置和logger解析
2019/08/28 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
社区党务公开实施方案
2014/03/18 职场文书
个人先进材料范文
2014/12/30 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
Python探索生命起源 matplotlib细胞自动机动画演示
2022/04/21 Python