原生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 相关文章推荐
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
Aug 19 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
利用select实现年月日三级联动的日期选择效果【推荐】
Dec 13 Javascript
BootStrap selectpicker后台动态绑定数据
Jun 01 Javascript
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
vue.js轮播图组件使用方法详解
Jul 03 Javascript
react-router4按需加载(踩坑填坑)
Jan 06 Javascript
带你彻底理解JavaScript中的原型对象
Apr 14 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运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
js下获取div中的数据的原理分析
2010/04/07 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
浅析js中的浮点型运算问题
2014/01/06 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
学习Node.js模块机制
2016/10/17 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
大学自我鉴定
2013/12/20 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
保护环境建议书400字
2014/05/13 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
小学优秀班主任材料
2014/12/17 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript