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 相关文章推荐
ModelDialog JavaScript模态对话框类代码
Apr 17 Javascript
JS实现根据当前文字选择返回被选中的文字
May 21 Javascript
jQuery寻找n以内完全数的方法
Jun 24 Javascript
详解JavaScript基于面向对象之继承
Dec 13 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
Vue和Bootstrap的整合思路详解
Jun 30 Javascript
ES6新特性:使用export和import实现模块化详解
Jul 31 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
Jul 17 Javascript
详解js动态获取浏览器或页面等容器的宽高
Mar 13 Javascript
微信小程序实现的绘制table表格功能示例
Apr 26 Javascript
js实现表单项的全选、反选及删除操作示例
Jun 05 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 保留小数点
2009/04/21 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
JavaScript修改css样式style动态改变元素样式
2013/12/16 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
2017/08/14 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python实现中文输出的两种方法
2015/05/09 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
python基于openpyxl生成excel文件
2020/12/23 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
2021/01/13 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
药学专业毕业生求职信
2013/10/20 职场文书
电子信息毕业生自荐信
2013/11/16 职场文书
班组长的岗位职责
2013/12/09 职场文书
好听的队名和口号
2014/06/09 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
2014年学前班工作总结
2014/12/08 职场文书
婚宴父亲致辞
2015/07/27 职场文书
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏