HTML+CSS每周一练——加载动画
先丢一个预览图
一. HTML结构
<body>
<h1>
<span>l</span>
<span>o</span>
<span>a</span>
<span>d</span>
<span>i</span>
<span>n</span>
<span>g</span>
<span>.</span>
<span>.</span>
<span>.</span>
</h1>
</body>
-
结构十分简单
二. CSS样式
1.首先引用一下谷歌字体
@import url("https://fonts.googleapis.com/css?family=Luckiest+Guy");
2.设置下网页的样式
body {
position: absolute;
width: 95%;
height: 98%;
background-color: skyblue;
background-size: 100% 100%;
font-family: "Luckiest Guy", cursive;
}
// 设置顶部的一个白光的效果(看个人取舍)
body::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
margin: auto;
border-radius: 100%;
background: transparent;
display: block;
box-shadow: 0 0 150px 100px rgba(255, 255, 255, 0.6),
200px 0 200px 150px rgba(255, 255, 255, 0.6),
-250px 0 300px 150px rgba(255, 255, 255, 0.6),
550px 0 300px 200px rgba(255, 255, 255, 0.6),
-550px 0 300px 200px rgba(255, 255, 255, 0.6);
}
3.设置内容主体部分的样式
h1 {
// 鼠标样式从文字的工字型改成默认的鼠标样式
cursor: default;
position: absolute;
top: 0;
left: 0;
bottom: 0;
margin: auto;
// 以上代码实现居中
width: 100%;
height: 100px;
display: block;
text-align: center;
}
h1 span {
position: relative;
// 注意定位方位top值为20px
top: 20px;
display: inline-block;
font-size: 80px;
color: #fff;
// 文字的阴影样式
text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 transparent, 0 7px 0 transparent, 0 8px 0 transparent, 0 9px 0 transparent, 0 10px 10px rgba(0, 0, 0, 0.4);
// 动画(ease:慢速开始,然后变快,然后慢速结束的过渡效果;infinite无限循环;alternate动画结束可反向)
animation: bounce 0.3s ease infinite alternate;
}
4.设置动画
@keyframes bounce {
100% {
// top值改20px,实现上移40px
top: -20px;
// 盒子阴影(主要是最后一层阴影把阴影在垂直方向的偏移量加大了40px)
text-shadow: 0 1px 0 #ccc, 0 2px 0 #ccc, 0 3px 0 #ccc, 0 4px 0 #ccc, 0 5px 0 #ccc, 0 6px 0 #ccc, 0 7px 0 #ccc, 0 8px 0 #ccc, 0 9px 0 #ccc, 0 50px 25px rgba(0, 0, 0, 0.2);
}
}
-
来看看现在的效果
-
可以看出来现在所有的字母都是一起上下起伏,还需要给他们分别加上延迟
5.添加延迟
h1 span:nth-child(2) {
animation-delay: 0.1s;
}
h1 span:nth-child(3) {
animation-delay: 0.2s;
}
h1 span:nth-child(4) {
animation-delay: 0.3s;
}
h1 span:nth-child(5) {
animation-delay: 0.4s;
}
h1 span:nth-child(6) {
animation-delay: 0.5s;
}
h1 span:nth-child(7) {
animation-delay: 0.6s;
}
h1 span:nth-child(8) {
animation-delay: 0.7s;
}
h1 span:nth-child(9) {
animation-delay: 0.8s;
}
现在就已经实现了最初我们看到的效果了
