這篇文章帶給大家的內容是關於如何使用純CSS實現棋盤的錯覺動畫(附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
https://github.com/comehope/front- end-daily-challenges
定義dom,容器中包含10 個子元素,每個子元素表示一行:
<div> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> <span></span> </div>
居中顯示:
body { margin: 0; height: 100vh; display: flex; align-items: center; justify-content: center; }
定義容器尺寸,以vmin
單位,並讓子元素垂直排列:
.container { width: 100vmin; height: 100vmin; display: flex; flex-direction: column; }
設定子元素的背景圖案為間隔的黑白色塊,頂部有一條細線:
.container span { width: inherit; height: 10vmin; background: linear-gradient( gray, gray 0.5vmin, transparent 0.5vmin, transparent ), repeating-linear-gradient( to right, black, black 10vmin, transparent 10vmin, transparent 20vmin ) }
在容器底部補一條細線:
.container { border-bottom: 0.5vmin solid gray; }
增加動畫效果,讓奇數行的背景向右移動半個色塊的位置,移動之後看起來好像奇數行右寬左窄,偶數行左寬右窄,這是一種錯覺:
.container span:nth-child(odd) { animation: move 5s linear infinite; } @keyframes move { 0%, 55%, 100% { background-position: 0 0; } 5%, 50% { background-position: 5vmin 0; } }
讓偶數行的背景也移動起來,產生相反方向的錯覺:
.container span:nth-child(even) { animation: move 5s linear infinite reverse; }
大功告成!
以上是如何使用純CSS實現棋盤的錯覺動畫(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!