原生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 相关文章推荐
IE6浏览器下resize事件被执行了多次解决方法
Dec 11 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
javascript强大的日期函数代码分享
Sep 04 Javascript
JavaScript中创建类/对象的几种方法总结
Nov 29 Javascript
前台js对象在后台转化java对象的问题探讨
Dec 20 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
May 27 Javascript
js判断当前页面在移动设备还是在PC端中打开
Jan 06 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
JavaScript中Form表单技术汇总(推荐)
Jun 26 Javascript
Angular2学习教程之ng中变更检测问题详解
May 28 Javascript
Vue computed 计算属性代码实例
Apr 22 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
咖啡与水的关系
2021/03/03 冲泡冲煮
php session处理的定制
2009/03/16 PHP
PHP操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
angular.element方法汇总
2015/01/07 Javascript
jQuery中Nicescroll滚动条插件的用法
2016/11/10 Javascript
Vue+webpack项目基础配置教程
2018/02/12 Javascript
vue.js 添加 fastclick的支持方法
2018/08/28 Javascript
详解vue-router传参的两种方式
2018/09/10 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
int在python中的含义以及用法
2019/06/27 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python 列表、字典和集合的添加和删除操作
2019/12/16 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
蔻驰英国官网:COACH英国
2020/07/19 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
课例研修方案
2014/05/31 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
超市收银员岗位职责
2015/04/07 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python