首頁 >web前端 >css教學 >如何使用純CSS實現蘋果系統的相簿圖示(代碼)

如何使用純CSS實現蘋果系統的相簿圖示(代碼)

不言
不言原創
2018-08-30 10:30:532534瀏覽

這篇文章帶給大家的內容是關於如何使用CSS實現蘋果系統的相簿圖標(代碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

效果預覽

如何使用純CSS實現蘋果系統的相簿圖示(代碼)

原始碼下載

https://github.com/comehop​​e/front-end-daily -challenges

程式碼解讀

定義dom,容器包含8 個元素,每個元素代表一個矩形色塊:

<div>
    <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;
    background-color: #ccc;
}

定義容器尺寸:

.icon {
    width: 10em;
    height: 10em;
    font-size: 30px;
    background-color: #eee;
    border-radius: 20%;
}

繪製出矩形的輪廓(邊框為輔助線,最終會被刪除),並放置在容器的中上方:

.icon {
    position: relative;
    display: flex;
    justify-content: center;
    box-sizing: border-box;
    padding: 1em;
}

.icon span {
    position: absolute;
    width: 22.5%;
    height: 37.5%;
    border: 1px dashed black;
    border-radius: 50% / 30%;
}

為矩形設定下標變數--n

.icon span:nth-child(1) {
    --n: 1;
}

.icon span:nth-child(2) {
    --n: 2;
}

.icon span:nth-child(3) {
    --n: 3;
}

.icon span:nth-child(4) {
    --n: 4;
}

.icon span:nth-child(5) {
    --n: 5;
}

.icon span:nth-child(6) {
    --n: 6;
}

.icon span:nth-child(7) {
    --n: 7;
}

.icon span:nth-child(8) {
    --n: 8;
}

讓8 個矩形依序旋轉固定的角度,圍合成一個圓形:

.icon span {
    transform-origin: center 105%;
    transform: rotate(calc((var(--n) - 1) * 45deg));
}

為矩形設定顏色變數- -c

.icon span:nth-child(1) {
    --c: rgba(243, 156, 18, 0.7);
}

.icon span:nth-child(2) {
    --c: rgba(241, 196, 15, 0.7);
}

.icon span:nth-child(3) {
    --c: rgba(46, 204, 113, 0.7);
}

.icon span:nth-child(4) {
    --c: rgba(27, 188, 155, 0.7);
}

.icon span:nth-child(5) {
    --c: rgba(65, 131, 215, 0.7);
}

.icon span:nth-child(6) {
    --c: rgba(102, 51, 153, 0.7);
}

.icon span:nth-child(7) {
    --c: rgba(155, 89, 182, 0.7);
}

.icon span:nth-child(8) {
    --c: rgba(242, 38, 19, 0.7);
}

為8 個矩形上色,並刪除掉起輔助線作用的邊框:

.icon span {
    /* border: 1px dashed black; */
    background-color: var(--c);
}

設定混色模式,使重疊色彩能疊加在一起:

.icon span {
    mix-blend-mode: multiply;
}

增加滑鼠懸停效果,當懸停時運行矩形色塊展開的動畫:

.icon:hover span {
    animation: rotating 2s ease-in-out forwards;
}

@keyframes rotating {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(calc((var(--n) - 1) * 45deg));
    }
}

注意,在動畫過程中第1 個矩形並沒有轉動,因為它是從0 度轉到0 度,為了讓它轉動,要把它的結束角度設為360 度,透過修改它的下標變數來實現:

.icon span:nth-child(1) {
    --n: 9;
}

大功告成!

相關推薦:

如何使用純CSS實作錫紙撕開的文字效果(附程式碼)

如何使用css實現監控網路連線狀態的頁面

以上是如何使用純CSS實現蘋果系統的相簿圖示(代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn