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 相关文章推荐
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
基于JQuery框架的AJAX实例代码
Nov 03 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
Feb 06 Javascript
JS 删除字符串最后一个字符的实现代码
Feb 20 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 Javascript
自己封装的一个原生JS拖动方法(推荐)
Nov 22 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
基于openlayers4实现点的扩散效果
Aug 17 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
Jul 19 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
Aug 20 Javascript
es6函数之rest参数用法实例分析
Apr 18 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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
用来给图片加水印的PHP类
2008/04/09 PHP
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
2013/06/21 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python删除文件示例分享
2014/01/28 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
如何在 Django 模板中输出 &quot;{{&quot;
2020/01/24 Python
python selenium操作cookie的实现
2020/03/18 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
集团公司总经理岗位职责
2013/12/20 职场文书
《春雨》教学反思
2014/04/24 职场文书
2014年保密工作总结
2014/11/22 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python