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 相关文章推荐
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
jquery中get,post和ajax方法的使用小结
Feb 04 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
基于Vue实现后台系统权限控制的示例代码
Aug 29 Javascript
利用pm2部署多个node.js项目的配置教程
Oct 22 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
vue.extend实现alert模态框弹窗组件
Apr 28 Javascript
cnpm加速Angular项目创建的方法
Sep 07 Javascript
Vuepress 搭建带评论功能的静态博客的实现
Feb 17 Javascript
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
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
php压缩多个CSS为一个css的代码并缓存
2011/04/21 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
2016/06/03 Python
Python输出各行命令详解
2018/02/01 Python
pandas string转dataframe的方法
2018/04/11 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
python多进程控制学习小结
2018/10/31 Python
python 实现绘制整齐的表格
2019/11/18 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
绩效考核实施方案
2014/03/18 职场文书
幼儿园个人师德总结
2015/02/06 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS
spring 项目实现限流方法示例
2022/07/15 Java/Android