今日练习之摩天轮动画

今天学习了CSS3的动画属性,实现的效果很炫酷,练习了一个很漂亮的简单的动态摩天轮,忍不住分享出来,忍不住想要去坐真的摩天轮啦,嘻嘻嘻~
代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style>
			*{margin:0;padding:0;}
			body,html{height: 100%;}
			body{
				background:url(img/2.jpg) no-repeat;
				background-size: cover;
			}
			.box,.content{
				width:768px;
				height:768px;
				
				position: fixed;
				top: 50%;
				left: 50%;
				margin: -384px 0 0 -384px;
			}
			.img1{
				position: absolute;
				top: 50%;
				left: 0;
				right: 0;
				margin: auto;
				
			}
			.img2{
				animation:wheel 20s linear infinite;
			}
			.img2,.img3{
				position: absolute;
				left: 0;
				right: 0;
				top: 0;
				bottom:0;
				margin: auto;
			}
			
			/*小孩的父元素*/
			.content img{
				position: absolute;
				animation: kids 20s linear infinite;
			}
			/*第一个小孩,位置是在top为0,左右居中位置*/
			.content img:nth-child(1){
				top: 0;
				right: 0;
				left: 0;
				margin: auto;
			}
			/*第二个小孩,位置是在bottom为0,左右居中位置*/
			.content img:nth-child(2){
				right: 0;
				bottom: 0;
				left: 0;
				margin: auto;
			}
			/*第三个小孩,位置是在lfet为0,上下居中位置*/
			.content img:nth-child(3){
				top: 0;
				bottom: 0;
				left: 0;
				margin: auto;	
			}
			/*第四个小孩,位置是在right为0,左右居中位置*/
			.content img:nth-child(4){
				top: 0;
				right: 0;
				bottom: 0;
				margin: auto;
			}
			/*第五个小孩,位置是在左上角位置*/
			.content img:nth-child(5){
				top: 70px;
				left:70px;
			}
			/*第六个小孩,位置是在右上角位置*/
			.content img:nth-child(6){
				top: 70px;
				right:70px;
			}
			/*第七个小孩,位置是在左下角位置*/
			.content img:nth-child(7){
				bottom: 70px;
				left:70px;
			}
			/*第八个小孩,位置是在右下角位置*/
			.content img:nth-child(8){
				bottom: 70px;
				right:70px;
			}
			.content{
				animation:wheel 20s linear infinite;
			}
			
			/*轮子与孩子的父元素都是正向转*/
			@keyframes wheel{
				from{transform: rotate(0deg);}
				to{transform: rotate(360deg);}
			}
			/*想要实现轮子转而小孩一直是头朝上,就得同时让小孩往相反的方向转*/
			@keyframes kids{
				from{transform: rotate(0deg);}
				to{transform: rotate(-360deg);}
			}	
		</style>
	</head>
	<body>
		<div class="box">
			
			
			<img class="img1" src="img/bracket.png"/> <!--支架-->                               
			<img class="img2" src="img/fsw.png"/><!--轮子-->
			<img class="img3" src="img/big-title.png"/><!--标题-->
		</div>
		<div class="content">   <!--小孩的父元素-->
			<img src="img/boy.png"/>
			<img src="img/dog.png"/>
			<img src="img/girl.png"/>
			<img src="img/girls.png"/>
			<img src="img/hairboy.png"/>
			<img src="img/mimi.png"/>
			<img src="img/mudog.png"/>
			<img src="img/shamegirl.png"/>
		</div>
	</body>
</html>

效果图如下图所示:
在这里插入图片描述
做这个效果其实并不难,难的是要有思路,刚开始我也是一头雾水,多做几个就好了,慢慢得思路就会清晰啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用CSS3动画实现摩天轮的例子: ```html <!DOCTYPE html> <html> <head> <title>CSS3 Animation Ferris Wheel</title> <style type="text/css"> .container { position: relative; margin: 0 auto; width: 400px; height: 400px; perspective: 1000px; } .wheel { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) rotateX(60deg); animation: rotate 10s linear infinite; transform-style: preserve-3d; } .wheel .spoke { position: absolute; top: 0; left: 50%; width: 2px; height: 100px; background-color: #000; transform-origin: bottom center; animation: rotate 10s linear infinite; } .wheel .spoke:nth-child(1) { transform: rotateZ(0deg); } .wheel .spoke:nth-child(2) { transform: rotateZ(45deg); } .wheel .spoke:nth-child(3) { transform: rotateZ(90deg); } .wheel .spoke:nth-child(4) { transform: rotateZ(135deg); } .wheel .spoke:nth-child(5) { transform: rotateZ(180deg); } .wheel .spoke:nth-child(6) { transform: rotateZ(225deg); } .wheel .spoke:nth-child(7) { transform: rotateZ(270deg); } .wheel .spoke:nth-child(8) { transform: rotateZ(315deg); } .wheel .car { position: absolute; top: 0; left: 50%; width: 50px; height: 50px; background-color: #f00; border-radius: 50%; transform-origin: bottom center; animation: rotate 10s linear infinite; animation-delay: 2s; transform-style: preserve-3d; } .wheel .car .box { position: absolute; top: 0; left: 0; width: 50px; height: 50px; background-color: #0f0; transform-origin: bottom center; animation: rotate 10s linear infinite; transform-style: preserve-3d; } .wheel .car .box .door { position: absolute; top: 0; left: 0; width: 25px; height: 50px; background-color: #00f; transform-origin: bottom center; animation: rotate 10s linear infinite; transform-style: preserve-3d; } @keyframes rotate { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } } </style> </head> <body> <div class="container"> <div class="wheel"> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="spoke"></div> <div class="car"> <div class="box"> <div class="door"></div> </div> </div> </div> </div> </body> </html> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值