• 技术文章 >web前端 >js教程

    css+js实现垂直旋转切换的幻灯片动画效果(附代码)

    青灯夜游青灯夜游2018-11-09 16:56:03原创1772
    本篇文章给大家带来的内容是用css+js实现简单的褪色幻灯片动画效果(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

    下面我们就通过代码来一步步实现幻灯片的垂直旋转切换动画效果:

    1、建立html文件,编写demo

    首先我们要在页面上设置图像列表,包含在div盒子中。类似于以下内容:

    <div id="stage">
    	<div id="rotator" style="-webkit-animation-name: rotator; -moz-animation-name: rotator;">
    		<a href="1.jpg"><img src="img/1.jpg" width="320" height="180"></a>
    		<a href="2.jpg"><img src="img/2.jpg" width="320" height="180"></a>
    		<a href="3.jpg"><img src="img/3.jpg" width="320" height="180"></a>
    		<a href="4.jpg"><img src="img/4.jpg" width="320" height="180"></a>
    		<a href="5.jpg"><img src="img/5.jpg" width="320" height="180"></a>
    		<a href="6.jpg"><img src="img/6.jpg" width="320" height="180"></a>
    		<a href="7.jpg"><img src="img/7.jpg" width="320" height="180"></a>
    		<a href="8.jpg"><img src="img/8.jpg" width="320" height="180"></a>
    	</div>
    </div>

    内联样式@keyframes属性引用下面的动画 。它需要内联而不是CSS,以便我们能够使用JavaScript停止和重新启动动画。

    2、使用CSS来叠加图像,在3D空间中布置照片

    CSS样式用于定位多张照片,使得照片在垂直方向切换

      #stage {
        margin: 5em auto 1em 50%;
        height: 240px;
        -webkit-perspective: 1200px;
        -webkit-perspective-origin: 0 90px;
        -moz-perspective: 1200px;
        -moz-perspective-origin: 0 90px;
        -ms-perspective: 1200px;
        -ms-perspective-origin: 0 90px;
      }
    
      #rotator a {
        position: absolute;
        left: -151px;
        -moz-transform-style: preserve-3d;
      }
      #rotator a img {
        padding: 10px;
        border: 1px solid #ccc;
        background: #fff;
        -webkit-backface-visibility: hidden;
        -moz-backface-visibility: hidden;
        -ms-backface-visibility: hidden;
      }
    
      #rotator a:nth-of-type(1) img {
        -webkit-transform: rotateX(-90deg) translateZ(100px);
        -moz-transform: rotateX(-90deg) translateZ(100px);
        -ms-transform: rotateX(-90deg) translateZ(100px);
      }
      #rotator a:nth-of-type(2) img {
        -webkit-transform: translateZ(100px);
        -moz-transform: translateZ(100px);
        -ms-transform: translateZ(100px);
      }
      #rotator a:nth-of-type(3) img {
        -webkit-transform: rotateX(90deg) translateZ(100px);
        -moz-transform: rotateX(90deg) translateZ(100px);
        -ms-transform: rotateX(90deg) translateZ(100px);
      }
      #rotator a:nth-of-type(n+4) { display: none; }

    3、添加动画效果

    实现3D的切换效果

      @-webkit-keyframes rotator {
        from { -webkit-transform: rotateX(0deg);  }
        to   { -webkit-transform: rotateX(90deg); }
      }
      @-moz-keyframes rotator {
        from { -moz-transform: rotateX(0deg);  }
        to   { -moz-transform: rotateX(90deg); }
      }
      @-ms-keyframes rotator {
        from { -ms-transform: rotateX(0deg);  }
        to   { -ms-transform: rotateX(90deg); }
      }
    
      #rotator {
        -webkit-transform-origin: 0 101px;
        -webkit-transform-style: preserve-3d;
        -webkit-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
        -webkit-animation-duration: 2s;
        -webkit-animation-delay: 1s;
        -moz-transform-origin: 0 101px;
        -moz-transform-style: preserve-3d;
        -moz-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
        -moz-animation-duration: 2s;
        -moz-animation-delay: 1s;
        -ms-transform-origin: 0 101px;
        -ms-transform-style: preserve-3d;
        -ms-animation-timing-function: cubic-bezier(1, 0.2, 0.2, 1);
        -ms-animation-duration: 2s;
        -ms-animation-delay: 1s;
      }
      #rotator:hover {
        -webkit-animation-play-state: paused;
        -moz-animation-play-state: paused;
        -ms-animation-play-state: paused;
      }

    4、 JavaScript添加动画控制器

      document.addEventListener("DOMContentLoaded", function() {
    
        var rotateComplete = function(e) {
          with(target.style) {
            webkitAnimationName = MozAnimationName = msAnimationName = "";
          }
          target.insertBefore(arr[arr.length - 1], arr[0]);
          setTimeout(function(el) {
            with(el.style) {
              webkitAnimationName = MozAnimationName = msAnimationName = "rotator";
            }
          }, 0, target);
        };
    
        var target = document.getElementById("rotator");
        var arr = target.getElementsByTagName("a");
    
        target.addEventListener("webkitAnimationEnd", rotateComplete, false);
        target.addEventListener("animationend", rotateComplete, false);
        target.addEventListener("MSAnimationEnd", rotateComplete, false);
    
      }, false);

    5、效果展示

    6.gif

    总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

    相关文章推荐:

    css实现三面立体旋转无限轮播图动画

    css+js如何在幻灯片上添加文字?实现幻灯片的旋转切换

    以上就是css+js实现垂直旋转切换的幻灯片动画效果(附代码)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:幻灯片动画 css js
    上一篇:html表单标签是什么?html中的form标签使用方法 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • jQuery旋转木马式幻灯片轮播特效_jquery• js带点自动图片轮播幻灯片特效代码分享_javascript技巧• Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)_jquery• Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)_jquery
    1/1

    PHP中文网