100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 【CSS3动画】利用CSS3制作“百度浏览器”官网奔跑的北极熊效果(不含背景移动)

【CSS3动画】利用CSS3制作“百度浏览器”官网奔跑的北极熊效果(不含背景移动)

时间:2022-07-21 02:24:23

相关推荐

【CSS3动画】利用CSS3制作“百度浏览器”官网奔跑的北极熊效果(不含背景移动)

本期带大家制作百度浏览器官网(目前官网已经注销)中奔跑的北极熊的动画效果。

动画原理

奔跑的北极熊动画原理是将北极熊奔跑的各个片段整合在一起,形成一张背景图片,然后设置一个盒子,将背景图片放入,通过设置

animation-timing-function: steps();

盒子不动,让背景图片以片段为单位移动,当速度达到足够快时,就感觉北极熊正在奔跑。

背景图片

首先准备一张背景图片,当作北极熊奔跑的背景,不设置背景图片也可以,但要设置背景颜色,方便观看北极熊奔跑动画。本案例用的背景图片是雪山背景图片。

雪山背景图片

北极熊奔跑的片段拼接图

代码实现

1、搭建HTML结构

box为整体的大盒子,里面的img用于存放雪山背景图片,bear盒子用于展示北极熊奔跑动画。

<body><div class="box"><img src="image/bg1.png" alt="" class="bg1"><div class="bear"></div></div></body>

设置背景盒子box,设置position: relative;相对定位是方便对bear盒子以及雪山背景图片进行定位。设置overflow: hidden;可以让超出盒子的图片隐藏起来。

2、CSS3对盒子进行修饰

.box {position: relative;overflow: hidden;width: 1300px;height: 600px;margin: 0 auto;background-color: #3b3d4b;}

将雪山背景图片放到box盒子的底部位置,因为原雪山背景图较大,因此我们需要对雪山背景图的高度进行修改,高度与宽度只需修改一个,另一个参数会等比例变化。

.bg1 {position: absolute;bottom: 0;height: 249px;}

bear盒子放置于box盒子的中部偏下区域,并将北极熊图片当作bear的背景图片插入。

因为北极熊图片为1600x100像素,一共有八个北极熊奔跑片段,因此我们的盒子应该设置为200x100像素,这样盒子每次只会展示一个北极熊片段。

.bear {position: absolute;bottom: 0;left: 50%;transform: translateX(-50%);width: 200px;height: 100px;background: url(image/bear.png) no-repeat;/* animation: run .6s steps(8) infinite; */}

3、设置动画

初始位置为第一个北极熊片段,最后位置为最后一个北极熊片段,北因此整个过程北极熊背景y轴没有移动,只有x轴移动了1600像素的距离。

@keyframes run {0% {}100% {background-position: -1600px 0;}}

4、引用动画

定义动画之后,需要在bear盒子中引用动画,因为北极熊片段一共为8个,因此将steps设置成8

animation: run .6s steps(8) infinite;

这样我们就完成了在雪地里奔跑的北极熊的动画效果。

5、完整代码

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>奔跑的北极熊</title><style>.box {position: relative;overflow: hidden;width: 1300px;height: 600px;margin: 0 auto;background-color: #3b3d4b;}.bg1 {position: absolute;bottom: 0;height: 249px;}.bear {position: absolute;bottom: 0;left: 50%;transform: translateX(-50%);width: 200px;height: 100px;background: url(image/bear.png) no-repeat;animation: run .6s steps(8) infinite;}@keyframes run {0% {}100% {background-position: -1600px 0;}}</style></head><body><div class="box"><img src="image/bg1.png" alt="" class="bg1"><div class="bear"></div></div></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。