原文地址:2.純 CSS 創做一個矩形旋轉 loader 特效
html
擴展後地址:https://scrimba.com/c/cNJVWUR
segmentfault
擴展地址:https://codepen.io/pen/flex
HTML代碼:動畫
<div class="loader"> <span></span> <span></span> <span></span> </div>
CSS代碼:spa
/* 居中顯示 */ html, body { margin: 0; padding: 0; height: 100%; display: flex; align-items: center; justify-content: center; background-color: black; } /* 設置容器的尺寸: */ .loader { width: 150px; height: 150px; position: relative; } /* 設置矩形的邊框樣式 */ .loader span { position: absolute; box-sizing: border-box; border-radius: 50%; } /* 設置 3 個矩形的尺寸: */ .loader span:nth-child(1) { border: 5px solid red; width: 100%; height: 100%; } .loader span:nth-child(2) { border: 5px solid green; width: 70%; height: 70%; margin: 15%; } .loader span:nth-child(3) { border: 5px solid blue; width: 40%; height: 40%; margin: 30%; } /* 定義動畫效果:*/ @keyframes rotating1 { from { transform: rotateY(0deg); } to { transform: rotateY(360deg); } } /* 把動畫應用到 3 個矩形上:*/ .loader span:nth-child(1) { animation: rotating1 linear infinite; animation-duration: 4s; } /* 定義動畫效果:*/ @keyframes rotating2 { from { transform: rotateX(0deg); transform-origin:center center; } to { transform: rotateX(360deg); } } /* 把動畫應用到 3 個矩形上:*/ .loader span:nth-child(2) { animation: rotating2 linear infinite; animation-duration: 4s; } /* 定義動畫效果:這裏無效 需補充*/ @keyframes rotating3 { from { skew(0deg,0deg); } to { skew(360deg,360deg); } } /* 把動畫應用到 3 個矩形上:*/ .loader span:nth-child(3) { animation: rotating3 linear infinite; animation-duration: 4s; }