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 相关文章推荐
jquery之Document元素选择器篇
Aug 14 Javascript
浅谈javascript的数据类型检测
Jul 10 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
Jul 05 Javascript
Javascript:为input设置readOnly属性(示例讲解)
Dec 25 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
C#微信小程序服务端获取用户解密信息实例代码
Mar 10 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
Bootstrap提示框效果的实例代码
Jul 12 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
JavaScript实现英语单词题库
Dec 24 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导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
JsRender for object语法简介
2014/10/31 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
2017/09/08 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
vue实现分页组件
2020/06/16 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
python脚本内运行linux命令的方法
2015/07/02 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
仓管员岗位责任制
2014/02/19 职场文书
《彩色世界》教学反思
2014/04/12 职场文书
经典演讲稿汇总
2014/05/19 职场文书
企业授权委托书范本
2014/09/22 职场文书
领导班子整改方案
2014/10/25 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
药店收银员岗位职责
2015/04/07 职场文书
工作犯错保证书
2015/05/11 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
MySQL自定义函数及触发器
2022/08/05 MySQL