原生js和css实现图片轮播效果


Posted in Javascript onFebruary 07, 2017

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

<!DOCTYPE HTML> 
<html lang="zh-CN"> 
 
<head> 
  <meta charset="utf-8"> 
  <title>图片轮播</title> 
   
  <style> 
    #box { 
      width:506px; 
      height:306px; 
      margin: 20px auto; 
      border:3px solid black; 
      position:relative; 
      background-color:orange; 
      overflow: hidden; 
      /*overflow: hidden;*/ 
    } 
    .pic { 
      position: absolute; 
      width:500px; 
      height:300px; 
      line-height: 300px; 
      text-align: center; 
      font-size: 100px; 
      color:white; 
      bottom:0; 
    } 
    .red { 
      background-color:red; 
    } 
    .green { 
      background-color:green; 
    } 
    .blue { 
      background-color:blue; 
    } 
    .orange{ 
      background-color: orange; 
    } 
    .move { 
      bottom:300px; 
      transition:bottom 3s; /* 设置图片移动消耗的时间*/ 
    } 
  </style> 
</head> 
 
<body> 
  <div id="box"> 
    <div id="pic1" class="pic red">1</div> 
    <div id="pic2" class="pic green">2</div> 
    <div id="pic3" class="pic blue">3</div> 
    <div id="pic3" class="pic orange">4</div> 
  </div> 
   
   
  <script> 
    window.addEventListener('load',function(){ 
      var pics = document.getElementsByClassName('pic'); 
       
      //为每个pic元素设置z-index的值 
      for(let i=0;i<pics.length;i++){ 
        pics[i].style.zIndex = pics.length-i; 
      } 
       
      //循环播放图片的函数 
      var loopPics = (function(){ 
        var index=0; 
        return function(pics,delay){ 
          var recall = function(pic){ 
            //给图片增加move类,调用css的transition属性播放移动动画 
            pic.className += ' move'; 
            setTimeout(function(){ 
              //取消图片的move类,图片返回原位 
              pic.className=pic.className.replace(' move',''); 
              //改变图片组的堆叠顺序。最外的图片放到最下面,其他图片依次向外移动 
              for(let i=0;i<pics.length;i++){ 
                if(pics[i].style.zIndex==pics.length){ 
                  pics[i].style.zIndex=1; 
                } else { 
                  pics[i].style.zIndex=pics[i].style.zIndex*1+1; 
                } 
              } 
              index++; 
              if(index==pics.length) index=0; 
              recall(pics[index]); 
            },delay); 
          }; 
          recall(pics[index]); 
        }; 
      })(); 
      //调用函数,循环播放。delay的时间需要大于等于css动画里设置的图片移动时间 
      loopPics(pics,4000); 
    }); 
 
  </script> 
</body> 
 
</html>

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

Javascript 相关文章推荐
浅谈javascript 面向对象编程
Oct 28 Javascript
使用jquery操作session方法分享
Jan 22 Javascript
Bootstrap 组件之按钮(二)
May 11 Javascript
JavaScript中的事件委托及好处
Jul 12 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
jQuery复合事件用法示例
Jun 10 jQuery
基于AngularJS实现的工资计算器实例
Jun 16 Javascript
React路由管理之React Router总结
May 10 Javascript
微信小程序使用canvas的画图操作示例
Jan 18 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 Javascript
bootstrap输入框组使用方法
Feb 07 #Javascript
angularjs使用directive实现分页组件的示例
Feb 07 #Javascript
Bootstrap下拉菜单样式
Feb 07 #Javascript
基于JavaScript实现购物车功能
Feb 07 #Javascript
js实现类bootstrap模态框动画
Feb 07 #Javascript
canvas实现探照灯效果
Feb 07 #Javascript
javascript数据类型详解
Feb 07 #Javascript
You might like
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
超级退弹代码
2008/07/07 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
详解node如何让一个端口同时支持https与http
2017/07/04 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python实现各种排序算法的代码示例总结
2015/12/11 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
单利模式及python实现方式详解
2018/03/20 Python
python装饰器深入学习
2018/04/06 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
pytorch 实现删除tensor中的指定行列
2020/01/13 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
Python的in,is和id函数代码实例
2020/04/18 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Python基于内置函数type创建新类型
2020/10/22 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
制药工程专业应届生求职信
2013/09/24 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
高校十八大报告感想
2014/01/27 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
法制宣传标语
2014/06/23 职场文书
2015年公司工作总结
2015/04/25 职场文书