旋转盒子

旋转盒子

旋转盒子这一个小功能结合了动画的过渡,变换以及关键帧动画,效果是盒子随意随着X轴,Y轴,Z轴移动,鼠标悬浮上去,盒子会撑大。

先上HTML代码布局演示:

<div class="wapper">
		<div class="cube">
			 <!-- 正面 -->
		     <span class="num_zheng">
		     	 
		     </span>
		     <!-- 反面 -->
		     <span class="num_fan">
		     	
		     </span>
		     <!-- 左面 -->
		     <span class="num_left">
		       
		     </span>
		       <!-- 右面 -->
		     <span class="num_right">
		     	
		     </span>
		       <!-- 上面 -->
		     <span class="num_top">
		     	
		     </span>	
		       <!-- 下面 -->
		     <span class="num_bottom">
		     	
		     </span>		
		</div>
	</div>

因为盒子有六面,然后给每个面设置背景图片,再通过设置效果让其运动起来,接下来演示css3代码:
先给盒子做个基本的样式添加背景图片,让其在页面正中位置定住

	*{
			padding: 0;
			margin: 0;
		}
		html{
			height: 100%;
			background-image: linear-gradient(#29f9f0 0% , #000 80%);
		}
		.wapper{
			width: 300px;
			margin-top: 100px;
			perspective: 800px;
			margin: 50px auto;
		}
		span img{
			width: 90px;
			height: 90px;
			

		}
		.cube span.num_zheng{
        	transform: translateZ(50px);
        	background-image: url(img/itme1.jpg);
        	background-size: auto 100%;
        }
        .cube span.num_fan{
        	transform: translateZ(-50px);
        	background-image: url(img/itme2.jpg);
        	background-size: auto 100%;
        }
        .cube span.num_left{
        	transform: translateX(-50px) rotateY(90deg);
        	background-image: url(img/itme3.jpg);
        	background-size: auto 100%;
        }
        .cube span.num_right{
        	transform: translateX(50px) rotateY(-90deg);
        	background-image: url(img/itme4.jpg);
        	background-size: auto 100%;
        }
        .cube span.num_top{
        	transform: translateY(-50px) rotateX(90deg);
        	background-image: url(img/itme5.jpg);
        	background-size: auto 100%;
        }
        .cube span.num_bottom{
        	transform: translateY(50px) rotateX(-90deg);
        	background-image: url(img/itme6.jpg);
        	background-size: auto 100%;
        }

设置完后,再让这个盒子运动起来

.wapper .cube{
			width: 300px;
			height: 300px;
	        transform-style: preserve-3d;
	        position: relative;
	        transform: rotateX(-50deg) rotateY(-50deg) rotate(-50deg);
	        animation: xuan 10s infinite;
		}
		.wapper .cube span{
			transition: all 1s cubic-bezier(0.9,-0.2,1,1);
		}
		.cube>span{
			display: block;
			width: 90px;
			height: 90px;
			position: absolute;
			left: 50px;
			top: 50px;
			opacity: 0.8;
			background-color: rgba(0,100,120,1);
			/*backface-visibility: hidden;*/

		}
		@keyframes xuan{
			0%{
                transform: rotateX(0deg) rotateY(0deg) rotate(0deg);
			}
			100%{
                transform: rotateX(720deg) rotateY(360deg) rotate(360deg);
			}
		}

最后就只剩下,鼠标悬浮效果了

.wapper .cube:hover .num_zheng{
        	
        	transform: translateZ(100px) scale(1.5);
        }
        .wapper .cube:hover .num_fan{
        	
        	transform: translateZ(-100px) scale(1.5);
        }
        .wapper .cube:hover .num_left{
        	
        	transform: translateX(-100px) rotateY(90deg) scale(1.5);
        }
        .wapper .cube:hover .num_right{
        	
        	transform: translateX(100px) rotateY(-90deg) scale(1.5);
        }
        .wapper .cube:hover .num_top{
        	
        	transform: translateY(-100px) rotateX(90deg) scale(1.5);
        }
        .wapper .cube:hover .num_bottom{
        	
        	transform: translateY(100px) rotateX(-90deg) scale(1.5);
        }

效果演示

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值