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实现带动画效果的多级下拉菜单代码
Sep 08 Javascript
Position属性之relative用法
Dec 14 Javascript
如何判断Javascript对象是否存在的简单实例
May 18 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
Jun 12 Javascript
Highcharts学习之数据列
Aug 03 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
May 13 jQuery
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
开发一个Parcel-vue脚手架工具(详细步骤)
Sep 22 Javascript
详解VUE单页应用骨架屏方案
Jan 17 Javascript
微信小程序实现提交input信息到后台的方法示例
Jan 19 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 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将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php解析url的三个示例
2014/01/20 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
[49:18]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 OG vs TNC
2018/04/01 DOTA
python实现ftp客户端示例分享
2014/02/17 Python
Python实现矩阵转置的方法分析
2017/11/24 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python3模拟curl发送post请求操作示例
2019/05/03 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
Python更换pip源方法过程解析
2020/05/19 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
几道PHP的面试题
2012/05/19 面试题
雪山饭庄的创业计划书范文
2014/01/18 职场文书
前处理组长岗位职责
2014/03/01 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
JavaScript实现简单图片切换
2021/04/29 Javascript
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Go遍历struct,map,slice的实现
2021/06/13 Golang
Javascript之datagrid查询详解
2021/09/15 Javascript
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android