【動(dòng)畫消消樂】HTML+CSS 自定義加載動(dòng)畫 060
效果展示

Demo代碼
HTML
<!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">
<link rel="stylesheet" href="style.css">
<title>Document</title>
</head>
<body>
<section><span></span></section>
</body>
</html>
CSS
html, body {
margin: 0;
height: 100%;
}
body {
display: flex;
justify-content: center;
align-items: center;
background: #ed556a;
}
section {
width: 650px;
height: 300px;
padding: 10px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
border: 2px solid white;
}
span {
width: 36px;
height: 36px;
display: inline-block;
position: relative;
background: white;
animation: loading 2s linear infinite;
}
@keyframes loading {
0% {
transform: translate(0, 0) rotateX(0) rotateY(0)
}
25% {
transform: translate(100%, 0) rotateX(0) rotateY(180deg)
}
50% {
transform: translate(100%, 100%) rotateX(-180deg) rotateY(180deg)
}
75% {
transform: translate(0, 100%) rotateX(-180deg) rotateY(360deg)
}
100% {
transform: translate(0, 0) rotateX(0) rotateY(360deg)
}
}
涉及知識(shí)點(diǎn)(需了解)
transform屬性中的
translate:定義 2D 轉(zhuǎn)換 rotateX:沿著 X 軸的 3D 旋轉(zhuǎn) rotateY:沿著 Y 軸的 3D 旋轉(zhuǎn)
?? 詳細(xì)解釋
原理詳解
步驟1
使用span標(biāo)簽,設(shè)置為
寬度、高度均為36px 相對(duì)定位 背景色:白色
span {
width: 36px;
height: 36px;
position: relative;
background: white;
}
效果圖如下

步驟2
為span添加動(dòng)畫 有5個(gè)關(guān)鍵幀
第一幀(初始狀態(tài))
二維空間:右移:0 下移:0 三維空間:繞x軸旋轉(zhuǎn)0度 繞y軸旋轉(zhuǎn)0度
transform: translate(0, 0) rotateX(0) rotateY(0)
第二幀(相對(duì)于初始狀態(tài))
二維空間:右移:100% 下移:0 (100%是指相對(duì)于自身的大小,若自身寬100px 那就移動(dòng)100px) 三維空間:繞x軸旋轉(zhuǎn)0度 繞y軸旋轉(zhuǎn)180度
transform: translate(100%, 0) rotateX(0) rotateY(180deg)
第一幀 過渡至 第二幀 效果圖如下

第三幀 (相對(duì)于初始狀態(tài))
二維空間:右移:100% 下移:100% 三維空間:繞x軸旋轉(zhuǎn)-180度 繞y軸旋轉(zhuǎn)180度
transform: translate(100%, 100%) rotateX(-180deg) rotateY(180deg)
第二幀 過渡至 第三幀 效果圖如下

第四幀(相對(duì)于初始狀態(tài))
二維空間:右移:0 下移:100% 三維空間:繞x軸旋轉(zhuǎn)-180度 繞y軸旋轉(zhuǎn)360度
transform: translate(0, 100%) rotateX(-180deg) rotateY(360deg)
第三幀 過渡至 第四幀 效果圖如下

第五幀(相對(duì)于初始狀態(tài))
二維空間:右移:0 下移:0 三維空間:繞x軸旋轉(zhuǎn)0度 繞y軸旋轉(zhuǎn)360度
transform: translate(0, 0) rotateX(0) rotateY(360deg)
第四幀 過渡至 第五幀 效果圖如下
綜上 動(dòng)畫代碼為:
animation: loading 2s linear infinite;
@keyframes loading {
0% {
transform: translate(0, 0) rotateX(0) rotateY(0)
}
25% {
transform: translate(100%, 0) rotateX(0) rotateY(180deg)
}
50% {
transform: translate(100%, 100%) rotateX(-180deg) rotateY(180deg)
}
75% {
transform: translate(0, 100%) rotateX(-180deg) rotateY(360deg)
}
100% {
transform: translate(0, 0) rotateX(0) rotateY(360deg)
}
}
最終效果圖如下

結(jié)語
希望對(duì)您有所幫助
如有錯(cuò)誤歡迎小伙伴指正~
我是 海轟?(?ˊ?ˋ)?
如果您覺得寫得可以的話
請(qǐng)點(diǎn)個(gè)贊吧
謝謝支持??
評(píng)論
圖片
表情
