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 相关文章推荐
jqgrid 表格数据导出实例
Nov 21 Javascript
Js实现动态添加删除Table行示例
Apr 14 Javascript
JavaScript使用push方法添加一个元素到数组末尾用法实例
Apr 06 Javascript
jQuery实现表格展开与折叠的方法
May 04 Javascript
jquery ui dialog替代confirm实例分析
Jan 25 Javascript
JavaScript中关联原型链属性特性
Feb 13 Javascript
jQuery页面加载初始化的3种方法(推荐)
Jun 02 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
Oct 10 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
vue-cli开发环境实现跨域请求的方法
Apr 07 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
详解jquery和vue对比
Apr 16 jQuery
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调用三种数据库的方法(2)
2006/10/09 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
别了 JavaScript中的isXX系列
2012/08/01 Javascript
javascript数组的使用
2013/03/28 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
Node解决简单重复问题系列之Excel内容的获取
2018/01/02 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
python转换摩斯密码示例
2014/02/16 Python
Django  ORM 练习题及答案
2019/07/19 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
Python实现某论坛自动签到功能
2019/08/20 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python for循环及基础用法详解
2019/11/08 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
如何利用python进行时间序列分析
2020/08/04 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
大学生毕业自我鉴定范文
2013/09/19 职场文书
自我评价的写作规则
2014/01/06 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
浅谈python中的多态
2021/06/15 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL