本篇文章给大家分享的是有关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、效果展示
以上就是css+js如何实现垂直旋转切换的幻灯片动画效果,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。