JS实现旋转木马式图片轮播效果


Posted in Javascript onJanuary 18, 2017

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

主要html代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" type="text/css" href="css/css.css">
  <script type="text/javascript" src="js/animate.js"></script>
</head>
<body>
  <div class="w-wrap" id="js_wrap">
    <div class="wrap-slide" id="wrap_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>
        <!-- <li><a href="#"><img src="images/slidepic6.jpg" alt=""></a></li> -->
      </ul>
      <div class="wrap-slide-arrow" id="wrap_slide_arrow">
        <a href="javascript:;" class="prev"></a>
        <a href="javascript:;" class="next"></a>
      </div>
    </div>
  </div>
  <script>
    function $(id){ return document.getElementById(id);}
    var js_wrap = $("js_wrap"); 
    var wrap_slide = $("wrap_slide"); 
    var wrap_slide_arrow = $("wrap_slide_arrow");
    var lis = wrap_slide.children[0].children;


    var json = [
      {
        //1
        width: 400,
        top: 20,
        left: 50,
        opacity: 20,
        z: 2
      },
      {
        //2
        width: 600,
        top: 70,
        left: 0,
        opacity: 80,
        z: 3
      },
      {
        //3
        width: 800,
        top: 100,
        left: 200,
        opacity: 100,
        z: 4
      },
      {
        //4
        width: 600,
        top: 70,
        left: 600,
        opacity: 80,
        z: 3
      },
      {
        //5
        width: 400,
        top: 20,
        left: 750,
        opacity: 20,
        z: 2
      }/*,
      {
        //6
        width: 300,
        top: 10,
        left: 400,
        opacity: 10,
        z: 1
      }*/
    ]
    change(); //将各个图片按照json铺开层次
    var jieliu = true;
    //两个按钮点击事件
    var as = wrap_slide_arrow.children;
    for(var k in as){
      as[k].onclick = function(){
        if(this.className == "prev"){
          /*alert("左侧按钮");*/
          //所有图片逆时针旋转,相当于图片不动,json的第一个删除并插到最后一个
          if(jieliu == true){
            change(false);
            jieliu = false;
          }

        }else if(this.className == "next"){
          /*alert("右侧按钮");*/
          //所有图片顺时针旋转,相当于图片不动,json的最后一个删除并插到第一个
          if(jieliu == true){
            change(true);
            jieliu = false;
          }
        }
      }
    }
    function change(flag){
      if(flag){
        //所有图片顺时针旋转,相当于图片不动,json的最后一个删除并插到第一个      
        json.unshift(json.pop());
      }else{
        //所有图片逆时针旋转,相当于图片不动,json的第一个删除并插到最后一个
        json.push(json.shift());
      }
      for(var k in json){
        animate(lis[k],{
          width: json[k].width,
          top: json[k].top,
          left: json[k].left,
          opacity: json[k].opacity,
          zIndex: json[k].z
        },function(){ jieliu = true;}); //当动画执行完,执行回调函数,此时置节流为true
      }
    }
    var timer = null;
    timer = setInterval(autoPlay,2000);
    function autoPlay(){
      if(jieliu == true){
        change(true);
        jieliu = false;
      }
    }

    js_wrap.onmouseover = function(){
      clearInterval(timer);
      animate(wrap_slide_arrow,{opacity:100});
    }
    js_wrap.onmouseout = function(){
      clearInterval(timer);
      timer = setInterval(autoPlay,2000);
      animate(wrap_slide_arrow,{opacity:0});
    }

    /*js_wrap.onmouseover = function(){
      animate(wrap_slide_arrow,{opacity:100});
    }
    js_wrap.onmouseout = function(){
      animate(wrap_slide_arrow,{opacity:0});
    }*/
  </script>
</body>
</html>

主要css代码:

/*初始化 reset*/
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;}

.w-wrap{
  width: 1200px;
  margin: 100px auto;
}
.wrap-slide{
  position: relative;
}
.wrap-slide li{
  position: absolute;
  left: 200px;
  top: 0;
}
.wrap-slide li img{
  width: 100%;
}
.wrap-slide-arrow{
  opacity: 0;
  position: relative;
}
.prev,.next{
  width: 76px;
  height: 112px;
  position: absolute;
  top: 50%;
  margin-top: -56px;
  background: url(../images/prev.png) no-repeat;
}
.next{
  right: 0;
  background: url(../images/next.png) no-repeat;
}

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

Javascript 相关文章推荐
20个非常棒的Jquery实用工具 国外文章
Jan 01 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
javascript实现给定半径求出圆的面积
Jun 26 Javascript
详解JavaScript 中的 replace 方法
Jan 01 Javascript
jquery trigger实现联动的方法
Feb 29 Javascript
jQuery使用中可能被XSS攻击的一些危险环节提醒
May 24 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
bootstrap多种样式进度条展示
Dec 20 Javascript
详解vue 组件之间使用eventbus传值
Oct 25 Javascript
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
微信小程序国际化探索实现(附源码地址)
May 20 Javascript
微信小程序实现图片预加载组件
Jan 18 #Javascript
JavaScript原生节点操作小结
Jan 17 #Javascript
Javascript 两种刷新方法以及区别和适用范围
Jan 17 #Javascript
easyUI combobox实现联动效果
Jan 17 #Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 #Javascript
React Router基础使用
Jan 17 #Javascript
JavaScript自定义分页样式
Jan 17 #Javascript
You might like
PHP测试程序运行时间的类
2012/02/05 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
Java中final关键字详解
2015/08/10 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
NodeJS实现阿里大鱼短信通知发送
2016/01/17 NodeJs
Javascript之面向对象--封装
2016/12/02 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
django实现前后台交互实例
2017/08/07 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
九月份红领巾广播稿
2014/01/22 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
村创先争优活动总结
2014/08/28 职场文书
奖金申请报告模板
2015/05/15 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript