首頁 > web前端 > css教學 > 如何使用純CSS實現棋盤的錯覺動畫(附源碼)

如何使用純CSS實現棋盤的錯覺動畫(附源碼)

不言
發布: 2018-10-17 14:17:01
轉載
3165 人瀏覽過

這篇文章帶給大家的內容是關於如何使用純CSS實現棋盤的錯覺動畫(附源碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

效果預覽

如何使用純CSS實現棋盤的錯覺動畫(附源碼)

原始碼下載

https://github.com/comehop​​e/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中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板