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

 更新时间:2017年02月07日 15:40:55   作者:侠之大者为国为民  
这篇文章主要为大家详细介绍了原生javascript和css实现图片轮播效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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代码

    本文给大家分享一段JS实例代码介绍动态创建按钮的方法,需要的朋友参考下本文
    2016-01-01
  • JS与jQuery判断文本框还剩多少字符可以输入的方法

    JS与jQuery判断文本框还剩多少字符可以输入的方法

    这篇文章主要介绍了JS与jQuery判断文本框还剩多少字符可以输入的方法,简单分析了js字符个数统计的方法,并给出了jQuery字符统计插件textlimit的相关使用方法示例,需要的朋友可以参考下
    2018-09-09
  • 微信小程序实现tab切换效果

    微信小程序实现tab切换效果

    这篇文章主要为大家详细介绍了微信小程序实现tab切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • 微信小程序6位或多位验证码密码输入框功能的实现代码

    微信小程序6位或多位验证码密码输入框功能的实现代码

    这篇文章主要介绍了微信小程序6位或多位验证码密码输入框功能的实现代码,实现思路很简单,需要的朋友可以参考下
    2018-05-05
  • bootstrap中使用google prettify让代码高亮的方法

    bootstrap中使用google prettify让代码高亮的方法

    使用google prettify 让代码高亮非常漂亮,接下来通过本文给大家介绍bootstrap中使用google prettify让代码高亮的方法,感兴趣的朋友一起看看吧
    2016-10-10
  • 微信小程序上传文件到阿里OSS教程

    微信小程序上传文件到阿里OSS教程

    这篇文章主要为大家详细介绍了微信小程序上传文件到阿里OSS教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 微信小程序发送短信验证码完整实例

    微信小程序发送短信验证码完整实例

    这篇文章主要介绍了微信小程序发送短信验证码完整实例,实现发送短信验证码,带60秒倒计时功能,无需服务器端,非常具有实用价值,需要的朋友可以参考下
    2019-01-01
  • 详解JS中你不知道的各种循环测速

    详解JS中你不知道的各种循环测速

    在前端JS中,有着多种数组循环的方式:for循环;while和do-while 循环;forEach、map、reduce、filter循环;for-of循环;for-in 循环;那么哪种循环的执行速度最快呢,我们今天来看一看。
    2021-05-05
  • 深入学习js函数的隐式参数 arguments 和 this

    深入学习js函数的隐式参数 arguments 和 this

    这篇文章主要介绍了 深入学习js函数的隐式参数 arguments 和 this,arguments是一个类数组结构,它保存了调用时传递给函数的所有实参;this是函数执行时的上下文对象, 这个对象有些让人感到困惑的行为。 下面分别对他们进行讨论。,需要的朋友可以参考下
    2019-06-06
  • 基于js Canvas实现二次贝塞尔曲线

    基于js Canvas实现二次贝塞尔曲线

    这篇文章主要为大家详细介绍了基于js Canvas实现二次贝塞尔曲线,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12

最新评论