js实现旋转木马轮播图效果


Posted in Javascript onJanuary 10, 2020

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

整个页面的文件结构如下图所示:

js实现旋转木马轮播图效果

html部分代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>旋转木马轮播图</title>
 <link rel="stylesheet" href="css/myStyle.css" rel="external nofollow" />
 <script type="text/javascript" src="js/animate.js"></script>
 <script type="text/javascript" src="js/my.js"></script>
</head>
<body>
<div class="wrap" id="wrap">
 <div class="slide" id="slide">
  <ul>
   <li><a href="#"><img src="images/slidepic1.jpg" alt=""/></a></li>
   <li><a href="#"><img src="images/slidepic2.jpg" alt=""/></a></li>
   <li><a href="#"><img src="images/slidepic3.jpg" alt=""/></a></li>
   <li><a href="#"><img src="images/slidepic4.jpg" alt=""/></a></li>
   <li><a href="#"><img src="images/slidepic5.jpg" alt=""/></a></li>
  </ul>
  <div class="arrow" id="arrow">
   <a href="javascript:;" class="prev" id="arrLeft"></a>
   <a href="javascript:;" class="next" id="arrRight"></a>
  </div>
 </div>
</div>
</body>
</html>

在html部分引入的myStyle.css文件部分代码

@charset "UTF-8";
 
blockquote,body,button,dd,dl,dt,fieldset,form,h1,h2,h3,h4, h5, h6, hr, input, legend, li, ol, p, pre, td, textarea, th, ul{
 margin:0;
 padding:0
}
 
body,button,input,select,textarea{
 font:12px/1.5 "Microsoft YaHei", "微软雅黑", SimSun, "宋体", sans-serif;
 color:#666;
}
 
ol,ul{
 list-style:none
}
 
a{
 text-decoration:none
}
 
fieldset,img{
 border:0;
 vertical-align:top;
}
 
a,input,button,select,textarea{
 outline:none
}
 
a,button{
 cursor:pointer
}
 
.wrap{
 width:1200px;
 margin:100px auto;
}
.slide{
 height:500px;
 position: relative;
}
 
.slide li{
 position:absolute;
 left:200px;
 top:0
}
 
.slide li img{
 width:100%
}
 
.arrow{
 opacity:0;
}
 
.prev ,.next{
 width:76px;
 height:112px;
 position:absolute;
 top:50%;
 margin-top:-56px;
 background:url(../images/prev.png) no-repeat;
 z-index:99;
}
 
 
.next{
 right:0;
 background-image:url(../images/next.png);
}

在html部分引入的animate.js文件部分代码

/**
 * Created by RENPINGSHENG on 2018/4/6.
 */
 
function animate(obj,json,fn) {
 clearInterval(obj.timer);
 obj.timer = setInterval(function () {
  var flag = true;
  for(var k in json){
   if( k == "opacity"){
    var leader = getStyle(obj,k) * 100;
    var target = json[k] * 100;
    var step = (target - leader) /10;
    step = step > 0 ? Math.ceil(step) : Math.floor(step);
    leader = leader + step;
    obj.style[k] = leader /100;
   } else if ( k == "zIndex"){
    obj.style[k] = json[k];
   }else{
    var leader = parseInt(getStyle(obj,k)) || 0;
    var target = json[k];
    var step = (target - leader) /10;
    step = step >0 ? Math.ceil(step) : Math.floor(step);
    leader = leader + step;
    obj.style[k] = leader + "px";
   }
 
   console.log("target:" + target + "leader:" + leader + "step:" + step);
   if (leader != target){
    flag = false;
   }
  }
 
  if (flag){
   clearInterval(obj.timer);
   if(fn){
    fn();
   }
  }
 },15)
}
 
function getStyle(obj,attr){
 if (obj.currentStyle){
  return obj.currentStyle[attr];
 }else{
  return window.getComputedStyle(obj,null)[attr];
 }
}

在html部分引入的my.js文件部分代码

/**
 * Created by RENPINGSHENG on 2018/4/6.
 */
 
 
window.onload = function () {
 var wrap = document.getElementById("wrap");
 var slide = document.getElementById("slide");
 var ul = slide.children[0];
 var lis = ul.children;
 var arrow = document.getElementById("arrow");
 var arrRight = document.getElementById("arrRight");
 var arrLeft = document.getElementById("arrLeft");
 
 var config = [
  {
   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
  }
 ];
 
 wrap.onmouseover = function () {
  animate(arrow,{"opacity":1});
 }
 wrap.onmouseout = function () {
  animate(arrow,{"opacity":0});
 }
 function assign() {
  for(var i = 0;i < lis.length;i++){
   animate(lis[i],config[i],function(){
    flag = true;
   })
  }
 }
 
 var flag = true;
 assign();
 arrRight.onclick = function () {
  flag = false;
  config.push(config.shift());
  assign();
 };
 arrLeft.onclick = function () {
  flag = false;
  config.unshift(config.pop());
  assign();
 }
}

代码完成后,用浏览器打开网页,效果如下:

js实现旋转木马轮播图效果

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

Javascript 相关文章推荐
基于Jquery的简单图片切换效果
Jan 06 Javascript
小试JQuery的AutoComplete插件
May 04 Javascript
Jquery中显示隐藏的实现代码分析
Jul 26 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
May 07 Javascript
使用pjax实现无刷新更改页面url
Feb 05 Javascript
window.open打开窗口被拦截的快速解决方法
Aug 04 Javascript
jquery实现input框获取焦点的简单实例
Jan 26 Javascript
jQuery日期范围选择器附源码下载
May 23 jQuery
jQuery plugin animsition使用小结
Sep 14 jQuery
基于对象合并功能的实现示例
Oct 10 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
微信小程序新闻网站详情页实例代码
Jan 10 #Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 #Javascript
JavaScript复制变量三种方法实例详解
Jan 09 #Javascript
js实现左右轮播图
Jan 09 #Javascript
Vue-axios-post数据后端接不到问题解决
Jan 09 #Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 #Javascript
Websocket 向指定用户发消息的方法
Jan 09 #Javascript
You might like
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP生成RSS文件类实例
2014/12/05 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
Jquery获取元素的父容器对象示例代码
2014/02/10 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
noty ? jQuery通知插件全面解析
2016/05/18 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
JavaScript中break、continue和return的用法区别实例分析
2020/03/02 Javascript
Python字符串拼接六种方法介绍
2017/12/18 Python
python+selenium实现163邮箱自动登陆的方法
2017/12/31 Python
python测试mysql写入性能完整实例
2018/01/18 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
Python3基本输入与输出操作实例分析
2020/02/14 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
python 读取.nii格式图像实例
2020/07/01 Python
班会关于环保演讲稿
2013/12/29 职场文书
网络工程师职业规划
2014/02/10 职场文书
后备干部考察材料
2014/02/12 职场文书
学校招生宣传广告词
2014/03/19 职场文书
会计人员岗位职责
2014/03/19 职场文书
采购意向书范本
2014/03/31 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
烈士陵园观后感
2015/06/08 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书