前端|3D立体视频翻转动画

简介: 前端|3D立体视频翻转动画

基本介绍

HTML5 3D立方体翻转动画特效是一款基于TweenMax制作多张图片拼接的3D立方体正方形旋转动画特效。

1.1 效果图


思路分析

制作3D立体视频翻转动画网页时,主要用到以下方法:

1、使用animation: rotate linear ns infinite属性来设置动画播放样式:动画对象,播放速度,时间,播放次数。

2、使用transform属性向元素应用2D或者3D转换。transform:rotateX() rotateY() rotateZ()让我们能够对元素进行翻转; ransform: scaleX()通过设置X轴的值来定义缩放转换。

3、添加鼠标移上效果hover

制作过程

1)创建一个父容器和立方体容器。在立方体容器里面创建小立方体,并插入视频,让视频自动播放(autoplay:自动播放;loop:循环播放;muted:静音)。

<div>

                            <div>

                                     <!--小立方体-->

                                     <ul>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                     </ul>

                   </div>      

</div>

2)调整视频大小,将视频整体居中,调整视距为800

*{

         margin:  0;

         padding:  0;

}

li{

         list-style:  none;/*去除list前面的修饰*/

 

}html,body{

         width:  100%;

         height:  100%;

         overflow:  hidden;

}

.main{

         width:  100%;

         height:  100%;

         perspective:  800;/*调整视距大小*/

}

.cubeBox{   /*整体立方体*/

         width:  200px;

         height:  200px;

         position:  absolute; 

         top:  50%;

         left:  50%;

         margin:  -100px 0 0 -100px;

         transform-style:  preserve-3d;/*调整方位居中;变化类型为3D*/

}

.cube{

         width:  100px;

         height:  100px;

         position:  absolute;

         top:  50%;

         left:  50%;

         margin:  -50px 0 0 -50px;

         transform-style:  preserve-3d;/*调整方位居中;变化类型为3D*/

 

         transform:  rotateX(-10deg)rotateY(45deg);

     animation: move 4s linear infinite;/*复合方式设置动画 :动画名 执行一次时间 执行方式 使动画永远的执行下去*/

}

(3)修饰小方块的六个面和它的视频大小位置。

.cube li{

         width:  100%;

         height:  100%;

         position:  absolute;

         top:  0;

         left:  0;

         transition:  all 1s ease;/*设置动画过渡:全部样式 1缓动*/

 

}

.cube li video{

         width:  100%;

         height:  100%;

}

.cube li:nth-child(1){

         transform:  rotateX(0deg)translateZ(50px);

}

.cube li:nth-child(2){

         transform:  rotateX(180deg)translateZ(50px);

}

.cube li:nth-child(3){

         transform:  rotateX(-90deg)translateZ(50px);

}

.cube li:nth-child(4){

         transform:  rotateX(90deg)translateZ(50px);

}

.cube li:nth-child(5){

         transform:  rotateY(-90deg)translateZ(50px);

}

.cube li:nth-child(6){

         transform:  rotateY(90deg)translateZ(50px);

}

(4)设置外面的大立方体以及对应的效果。

<!--大立方体-->

                                     <ul  class="cube bigCube">

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                               <li><video  src="video.mp4" autoplay loop muted></video></li>

                                     </ul>

/*大立方体*/

.bigCube{

         width:  200px;

         height:  200px;

         margin:  -100px 0 0 -100px;

}

.bigCube li:nth-child(1){

         transform:  rotateX(0deg)translateZ(100px);

}

.bigCube li:nth-child(2){

         transform:  rotateX(180deg)translateZ(100px);

}

.bigCube li:nth-child(3){

         transform:  rotateX(-90deg)translateZ(100px);

}

.bigCube li:nth-child(4){

         transform:  rotateX(90deg)translateZ(100px);

}

.bigCube li:nth-child(5){

         transform:  rotateY(-90deg)translateZ(100px);

}

.bigCube li:nth-child(6){

         transform:  rotateY(90deg)translateZ(100px);

}

(5)调用动画名字,设置动画旋转效果(@keyframe效果:实现动画效果;使用方法:@keyframe +动画名{from:初始状态;to:末状态})。

@keyframes move{

         from{transform:  rotateX(-13deg) rotateY(0deg);}

         to{transform:  rotateX(-13deg) rotateY(360deg);}/*添加3D旋转效果让其绕XY轴同时旋转90*/

}

(6)为立方体添加鼠标移上的效果。

.cubeBox:hover .bigCube li:nth-child(1){

         transform:  rotateX(0deg)translateZ(200px);

}

.cubeBox:hover .bigCube li:nth-child(2){

         transform:  rotateX(180deg)translateZ(200px);

}

.cubeBox:hover .bigCube li:nth-child(3){

         transform:  rotateX(-90deg)translateZ(200px);

}

.cubeBox:hover .bigCube li:nth-child(4){

         transform:  rotateX(90deg)translateZ(200px);

}

.cubeBox:hover .bigCube li:nth-child(5){

         transform:  rotateY(-90deg)translateZ(200px);

}

.cubeBox:hover .bigCube li:nth-child(6){

         transform:  rotateY(90deg)translateZ(200px);

}

(7)在父容器后面添加背景播放器并设置其格式。

<!--背景播放器-->

                            <video  src="video.mp4" autoplay loop muted></video>

.bg{

         width:  100%;

         height:  100%;

         object-fit:  fill;/*设置背景全填充*/

 

}

效果图:

1.2 效果图

1.3 效果图



目录
相关文章
|
4月前
|
JSON 前端开发 JavaScript
前端使用lottie-web,使用AE导出的JSON动画贴心教程
前端使用lottie-web,使用AE导出的JSON动画贴心教程
430 2
|
17天前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
22 0
|
2月前
|
前端开发
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
|
2月前
|
前端开发 JavaScript API
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)
33 0
|
2月前
|
监控 JavaScript 前端开发
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)
38 0
|
2月前
|
前端开发 JavaScript UED
只会用插件可不行,这些前端动画技术同样值得收藏-CSS篇
只会用插件可不行,这些前端动画技术同样值得收藏-CSS篇
65 0
|
2月前
|
前端开发 JavaScript
前端 JS 经典:数字变化动画
前端 JS 经典:数字变化动画
33 0
|
2月前
|
前端开发 API 开发者
前端 CSS 经典:边框转圈动画效果
前端 CSS 经典:边框转圈动画效果
111 0
|
2月前
|
前端开发 JavaScript
前端 CSS 经典:3D Hover Effect 效果
前端 CSS 经典:3D Hover Effect 效果
36 0
|
2月前
|
前端开发
前端 CSS 经典:好看的标题动画
前端 CSS 经典:好看的标题动画
31 0