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 相关文章推荐
JS的document.all函数使用示例
Dec 30 Javascript
JS提交form表单实例分析
Dec 10 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
Feb 16 Javascript
Javascript中级语法快速入手
Jul 30 Javascript
require.js+vue开发微信上传图片组件
Oct 27 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
Jun 13 Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 Javascript
基于js 字符串indexof与search方法的区别(详解)
Dec 04 Javascript
three.js实现3D影院的原理的代码分析
Dec 18 Javascript
js循环map 获取所有的key和value的实现代码(json)
May 09 Javascript
基于Electron实现桌面应用开发代码实例
Jul 07 Javascript
JavaScript数组reduce()方法的语法与实例解析
Jul 07 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php5 图片验证码实现代码
2009/12/11 PHP
php简单生成随机数的方法
2015/07/30 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP使用DOM对XML解析处理操作示例
2019/07/04 PHP
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
js动态生成form 并用ajax方式提交的实现方法
2016/09/09 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Django使用模板后无法找到静态资源文件问题解决
2019/07/19 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
学前教育毕业生自荐信范文
2013/12/24 职场文书
妈妈的账单教学反思
2014/02/06 职场文书
计划生育宣传标语
2014/06/21 职场文书
安全学习心得体会范文
2016/01/18 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
带你了解Java中的ForkJoin
2022/04/28 Java/Android