JS实现旋转木马轮播图


Posted in Javascript onJanuary 01, 2020

本文实例为大家分享了JS实现旋转木马轮播图的具体代码,供大家参考,具体内容如下

知识点

1、旋转木马思想:

1)、固定五种图片的位置信息jsonArr进行布局
2)、点击<或者>会对jsonArr进行重新排序,重新排序后对界面重新进行布局

2、数据驱动界面,数据的改变会影响界面

3、数组的四种操作

① push:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
② pop:pop() 方法用于删除并返回数组的最后一个元素。
③ shift:shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
④ unshift:unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

引入工具库工具库

运行效果

JS实现旋转木马轮播图

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title></title>
 <style>
  * {
   margin: 0;
   padding: 0;
   border: none;
   list-style: none;
  }

  img {
   vertical-align: top;
  }

  body {
   background-color: #000;
  }

  #slider {
   width: 1200px;
   height: 460px;
   margin: 100px auto;
   position: relative;
   /*background-color: red;*/
  }

  #slider li {
   position: absolute;
   left: 200px;
   top: 0;
  }

  #slider li img {
   width: 100%;
   height: 100%;
  }

  .slider_ctl_prev, .slider_ctl_next {
   width: 76px;
   height: 112px;
   position: absolute;
   top: 50%;
   margin-top: -56px;
   z-index: 99;
  }

  #slider_ctl {
   opacity: 0;
  }

  .slider_ctl_prev {
   background: url("images/prev.png") no-repeat;
   left: 0;
  }

  .slider_ctl_next {
   background: url("images/next.png") no-repeat;
   right: 0;
  }
 </style>
</head>
<body>
<div id="slider">
 <ul id="slider_main">
  <li><img src="images/slidepic1.jpg" alt=""></li>
  <li><img src="images/slidepic2.jpg" alt=""></li>
  <li><img src="images/slidepic3.jpg" alt=""></li>
  <li><img src="images/slidepic4.jpg" alt=""></li>
  <li><img src="images/slidepic5.jpg" alt=""></li>
 </ul>
 <div id="slider_ctl">
  <span class="slider_ctl_prev"></span>
  <span class="slider_ctl_next"></span>
 </div>
</div>
<script src="../00MyTools/MyTools.js"></script>
<script>
 window.addEventListener('load',function (ev) {
  // 1. 获取需要标签
  var slider = myTool.$('slider');
  var sliderMain = myTool.$('slider_main');
  var allLis = sliderMain.children;
  var sliderCtl = myTool.$('slider_ctl');

  // 2. 位置信息
  var jsonArr = [
   {"width":"400", "top":"20", "left":"50", "opacity":"0.2", "zIndex":"2"},
   {"width":"600", "top":"70", "left":"0", "opacity":"0.8", "zIndex":"3"},
   {"width":"800", "top":"100", "left":"200", "opacity":"1", "zIndex":"4"},
   {"width":"600", "top":"70", "left":"600", "opacity":"0.8", "zIndex":"3"},
   {"width":"400", "top":"20", "left":"750", "opacity":"0.2", "zIndex":"2"}
  ];
  // 将位置信息作用到图片上去
  for (var i = 0; i < jsonArr.length; i++) {
   myTool.slowMoving(allLis[i], jsonArr[i]);
  }
  // 3. 设置显示和隐藏
  slider.addEventListener('mouseover', function () {
   myTool.slowMoving(sliderCtl, {'opacity': 1});
  });

  slider.addEventListener('mouseout', function () {
   myTool.slowMoving(sliderCtl, {'opacity': 0});
  });

  // 4. 监听点击
  for (var j = 0; j < sliderCtl.children.length; j++) {
   var item = sliderCtl.children[j];
   item.addEventListener('click',function (evt) {
    if (this.className === 'slider_ctl_prev'){
     // 点击左边
     // 两种方式
     // 1. 改变数据影响标签 数据驱动界面
     // 2. 改变标签适应数据
     jsonArr.push(jsonArr.shift())
    }else{
     // 点击右边
     jsonArr.unshift(jsonArr.pop())
    }

    // 重新布局
    for (var i = 0; i < jsonArr.length; i++) {
     myTool.slowMoving(allLis[i], jsonArr[i]);
    }
   },false);
  }
 },false)
</script>
</body>
</html>

更多关于轮播图效果的专题,请点击下方链接查看学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 仿QQ滑动菜单效果代码
Sep 03 Javascript
js控制web打印(局部打印)方法整理
May 29 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
May 24 Javascript
详解Javascript中的原型OOP
Oct 12 Javascript
JavaScript基础之this详解
Jun 04 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
angular.js实现列表orderby排序的方法
Oct 02 Javascript
bootstrap下拉分页样式 带跳转页码
Dec 29 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
JS实现普通轮播图特效
Jan 01 #Javascript
javascript实现超好看的3D烟花特效
Jan 01 #Javascript
JavaScript工具库MyTools详解
Jan 01 #Javascript
javascript Canvas动态粒子连线
Jan 01 #Javascript
小程序新版订阅消息模板消息
Dec 31 #Javascript
小程序实现长按保存图片的方法
Dec 31 #Javascript
使用webpack搭建vue环境的教程详解
Dec 31 #Javascript
You might like
第1次亲密接触PHP5(2)
2006/10/09 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
php+mongodb判断坐标是否在指定多边形区域内的实例
2016/10/28 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
学习ExtJS table布局
2009/10/08 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python实现统计文本文件字数的方法
2017/05/05 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
python os模块在系统管理中的应用
2020/06/22 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
夏季药店促销方案
2014/08/22 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015领导干部廉洁自律工作总结
2015/07/23 职场文书
物资采购管理制度
2015/08/06 职场文书
大学班干部竞选稿
2015/11/20 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
Java存储没有重复元素的数组
2022/04/29 Java/Android
mysql sock文件存储了什么信息
2022/07/15 MySQL