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 相关文章推荐
Array对象方法参考
Oct 03 Javascript
基于JQuery 的消息提示框效果代码
Jul 31 Javascript
基于JQuery实现的Select级联
Jan 27 Javascript
Javascript通过overflow控制列表闭合与展开的方法
May 15 Javascript
基于JavaScript实现智能右键菜单
Mar 02 Javascript
vue实现动态数据绑定
Apr 28 Javascript
Vue实战之vue登录验证的实现代码
Oct 31 Javascript
Angular实现双向折叠列表组件的示例代码
Nov 21 Javascript
vue组件发布到npm简单步骤
Nov 30 Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
Jun 21 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
队列在编程中的实际应用(php)
2010/09/04 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
php中memcache 基本操作实例
2015/05/17 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
些很实用且必用的小脚本代码
2006/06/26 Javascript
JQuery 入门实例1
2009/06/25 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
2013/09/06 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
微信小程序Flex布局用法深入浅出分析
2019/04/25 Javascript
python中的格式化输出用法总结
2016/07/28 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Flask之请求钩子的实现
2018/12/23 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
渡河少年教学反思
2014/02/12 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
大学生毕业求职信
2014/06/12 职场文书
爱晚亭导游词
2015/02/09 职场文书
村主任当选感言
2015/08/01 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
简单谈谈Python面向对象的相关知识
2021/06/28 Python
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android