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 相关文章推荐
利用js对象弹出一个层
Mar 26 Javascript
JS完成代码前最好对其做5件事
Apr 07 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
Aug 26 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
JavaScript之创意时钟项目(实例讲解)
Oct 23 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
May 07 Javascript
JS实现判断数组是否包含某个元素示例
May 24 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
Dec 14 Vue.js
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变量的方法
2015/06/26 PHP
注意!PHP 7中不要做的10件事
2016/09/18 PHP
PDO::commit讲解
2019/01/27 PHP
PHP数组对象与Json转换操作实例分析
2019/10/22 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
详解python字节码
2018/02/07 Python
python 多线程串行和并行的实例
2019/02/22 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
行政部工作岗位职责范本
2014/03/05 职场文书
《三亚落日》教学反思
2014/04/26 职场文书
国庆节活动总结
2014/08/26 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
个人求职意向书
2015/05/11 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
Python中super().__init__()测试以及理解
2021/12/06 Python