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拖拽元素改变大小尺寸实现代码
Dec 10 Javascript
JS 对输入框进行限制(常用的都有)
Jul 30 Javascript
js打开新窗口方法整理
Feb 17 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
Mar 13 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
jquery validate表单验证插件
Sep 06 Javascript
jquery实现转盘抽奖功能
Jan 06 Javascript
js实现下一页页码效果
Mar 07 Javascript
js 函数性能比较方法
Aug 24 Javascript
javascript实现点击小图显示大图
Nov 29 Javascript
VUE使用draggable实现组件拖拽
Apr 06 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 Undefined index的问题
2009/06/01 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
js控制input输入字符解析
2013/12/27 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
基于jQuery实现动态数字展示效果
2015/08/12 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
ES6之Proxy的get方法详解
2019/10/11 Javascript
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
毕业生自我推荐
2013/11/04 职场文书
个人自我鉴定
2013/11/07 职场文书
应届护士推荐信
2013/11/16 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
搞笑获奖感言
2014/01/30 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
写求职信有什么意义
2014/02/17 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书