JS实现轮播图效果


Posted in Javascript onJanuary 11, 2020

本文实例为大家分享了JS实现轮播图展示的具体代码,供大家参考,具体内容如下

原理介绍

1.html 

<div id="swiper-container" class="swiper-container" onmouseenter="swiperImg()" onmouseleave="stopSwiper()">
  <div id="img-list" style="left:0px;">
   <img src="img/swiper1.png" alt="1">
   <img src="img/swiper2.png" alt="2">
   <img src="img/swiper1.png" alt="1">
   <img src="img/swiper2.png" alt="2">
  </div>
  <div id="swiper-btn">
   <span index="1" class="on"></span>
   <span index="2"></span>
  </div>
</div>

布局很简单,利用一个class="swiper-container"的div,包裹图片列表,swiper-btn是按钮

2. css

* {
  margin: 0;
  padding: 0;
 }

 a {
  text-decoration: none;
 }

 .swiper-container {
  position: relative;
  width: 300px;
  height: 300px;
  margin: 0 auto;
  border: 1px solid;
  overflow: hidden;
 }

 #img-list {
  position: absolute;
  width: 1200px;
  height: 300px;
 }

 #img-list img {
  float: left;
 }

 #swiper-btn {
  position: absolute;
  bottom: 5%;
  left: 45%;
 }

 #swiper-btn span {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 5px;

 }

 .on {
  background-color: goldenrod;
 }

 span {
  background-color: #d7d7d7;
 }

3.js

var timer;
  var div = document.getElementById('img-list');
  var span = document.getElementById('swiper-btn').getElementsByTagName('span');
  var offset = -300;
  var index = 1;
  function swiperImg() {
   timer = setInterval(() => {
    var left = parseInt(div.style.left);
    var newLeft = left + offset;
    if (newLeft <= -1200) {
     div.style.left = '0px';
    }
    else {
     div.style.left = newLeft + 'px';
    }
    showBtn(parseInt(div.style.left));
   }, 3000);
  }

  function showBtn(left) {
   if (left == 0 || left == -600) {
    span[0].className = "on";
    span[1].className = "";
   }
   else {
    span[0].className = "";
    span[1].className = "on";
   }
  }

  function stopSwiper() {
   clearInterval(timer);
  }

  for (var i = 0; i < span.length; i++) {
   span[i].onclick = function () {
    if (this.className == "on") {
     return false;
    }
    var myIndex = parseInt(this.getAttribute("index"));
    if (myIndex == 1)
     div.style.left = 0 + 'px';
    if (myIndex == 2)
     div.style.left = -300 + 'px';
    index = myIndex;
    showButton();
   }
  }

  function showButton() {
   for (var i = 0; i < span.length; i++) { //全部取消掉on样式
    if (span[i].className == "on") {
     span[i].className = "";
     break;
    }
   }
   span[index - 1].className = "on";
  }

效果如下所示:

JS实现轮播图效果

JS实现轮播图效果

更多关于轮播图效果的专题,请点击下方链接查看学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript开发技术大全 第4章 直接量与字符集
Jul 03 Javascript
五段实用的js高级技巧
Dec 20 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
javascript:window.open弹出窗口的位置问题
Mar 18 Javascript
JavaScript数据存储 Cookie篇
Jul 02 Javascript
jQuery实现左侧导航模块的显示与隐藏效果
Jul 04 Javascript
深入浅出webpack之externals的使用
Dec 04 Javascript
面包屑导航详解
Dec 07 Javascript
vue中如何使用ztree
Feb 06 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
js逆向解密之网络爬虫
May 30 Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 Javascript
js实现带搜索功能的下拉框
Jan 11 #Javascript
js实现select下拉框选择
Jan 11 #Javascript
js实现二级联动简单实例
Jan 11 #Javascript
jQuery实现轮播图效果demo
Jan 11 #jQuery
详解微信小程序中var、let、const用法与区别
Jan 11 #Javascript
jQuery擦除插件eraser使用方法详解
Jan 11 #jQuery
详解javascript中var与ES6规范中let、const区别与用法
Jan 11 #Javascript
You might like
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
解析yii数据库的增删查改
2013/06/20 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
js控制分页打印、打印分页示例
2014/02/08 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
2016/01/19 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
用Python的urllib库提交WEB表单
2009/02/24 Python
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
python实现发送邮件及附件功能
2021/03/02 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
python快排算法详解
2019/03/04 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
企业安全生产标语
2014/06/06 职场文书
同志主要表现材料
2014/08/21 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers