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(DHTML)中的一些技巧
Jan 09 Javascript
通过javascript设置css属性的代码
Dec 28 Javascript
jquery文字上下滚动的实现方法
Mar 22 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
浅谈javascript 函数内部属性
Jan 21 Javascript
node.js require() 源码解读
Dec 13 Javascript
详解js中Json的语法与格式
Nov 22 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
AngularJS中重新加载当前路由页面的方法
Mar 09 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
Jun 19 Javascript
小程序ios音频播放没声音问题的解决
Jul 11 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 download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
Vue-router结合transition实现app前进后退动画切换效果的实例
2017/10/11 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
pytorch梯度剪裁方式
2020/02/04 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
名人演讲稿范文
2013/12/28 职场文书
创业计划书的内容步骤和要领
2014/01/04 职场文书
艺术节主持词
2014/04/02 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏