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 相关文章推荐
让IE6支持min-width和max-width的方法
Jun 25 Javascript
关于JavaScript中string 的replace
Apr 12 Javascript
深入理解javascript的执行顺序
Apr 04 Javascript
jquery 实现两Select 标签项互调示例代码
Sep 25 Javascript
js实现简单计算器
Nov 22 Javascript
JavaScript中文件上传API详解
Apr 01 Javascript
canvas实现探照灯效果
Feb 07 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
canvas轨迹回放功能实现
Dec 20 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
jquery select操作的日期联动实现代码
2009/12/06 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
Sony C++笔试题
2013/03/10 面试题
国家励志奖学金获奖感言
2014/01/09 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
元旦获奖感言
2014/03/08 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
工作试用期自我评价
2015/03/10 职场文书