91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用純CSS實現一把剪刀的效果

發布時間:2020-09-14 15:03:22 來源:億速云 閱讀:142 作者:小新 欄目:web開發

小編給大家分享一下怎么使用純CSS實現一把剪刀的效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

效果預覽

怎么使用純CSS實現一把剪刀的效果

源代碼下載

https://github.com/comehope/front-end-daily-challenges

代碼解讀

定義 dom,容器中包含 2 個 .half 元素,各表示剪刀的半邊,它的子元素 handle 表示刀柄,blade 表示刀,最后的 .joint 表示連接左右兩部分鉚釘:

<figure class="scissors">
    <div class="half">
        <span class="handle"></span>
        <span class="blade"></span>
    </div>
    <div class="half">
        <span class="blade"></span>
        <span class="handle"></span>
    </div>
    <div class="joint"></div>
</figure>

居中顯示:

body {
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

定義容器尺寸,其中 outline 是輔助線:

.scissors {
    width: 21em;
    height: 7em;
    outline: 1px dashed;
}

定義半邊剪刀的尺寸,其中 outline 是輔助線:

.scissors {
    position: relative;
}

.half {
    position: absolute;
    width: inherit;
    height: 4em;
    outline: 1px dashed red;
}

畫出刀柄:

.handle {
    position: absolute;
    box-sizing: border-box;
    width: 8em;
    height: inherit;
    border: 1em solid #333;
    border-radius: 2em;
}

畫出刀,用圓角屬性畫出了頂部的刀尖:

.blade {
    position: absolute;
    width: 15em;
    height: 1em;
    background-color: silver;
    top: 3em;
    left: 6em;
    border-radius: 0 0 1em 0;
    z-index: -1;
}

用偽元素在刀的底部畫一個三角形,使刀與刀柄連接得更牢固:

.blade::before {
    content: '';
    position: absolute;
    border-style: solid;
    border-width: 0 1.8em 1em 1.8em;
    border-color: transparent transparent silver transparent;
    top: -1em;
    left: 0.2em;
}

使半邊刀傾斜:

.half {
    transform-origin: 45% bottom;
    transform: rotate(15deg);
}

利用 scale() 函數畫出剪刀的另一半:

.half {
    transform-origin: 45% bottom;
    transform: rotate(calc(15deg * var(--direction))) scaleY(var(--direction));
}

.half:nth-child(1) {
    --direction: 1;
    top: 0;
}

.half:nth-child(2) {
    --direction: -1;
    top: -1em;
}

畫出連接左右半邊的鉚釘:

.joint {
    position: absolute;
    width: 0.7em;
    height: 0.7em;
    background-color: #333;
    border-radius: 50%;
    top: calc(50% - 0.7em / 2);
    left: 45%;
}

增加動畫鼠標懸停時的動畫效果:

.scissors:hover .half {
    animation: cut 2s ease-out;
}

@keyframes cut {
    20%, 60% {
        transform: rotate(calc(30deg * var(--direction))) scaleY(var(--direction));
    }

    40%, 80% {
        transform: rotate(calc(5deg * var(--direction))) scaleY(var(--direction));
    }
}

最后,別忘了刪掉輔助線。

以上是怎么使用純CSS實現一把剪刀的效果的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

css
AI

社旗县| 武宣县| 子长县| 右玉县| 航空| 上林县| 宝山区| 嘉义县| 宜宾市| 焦作市| 天水市| 枣强县| 南陵县| 织金县| 台北市| 应用必备| 桃源县| 泸定县| 松桃| 东乡族自治县| 枞阳县| 武平县| 高邮市| 大连市| 阜城县| 晋宁县| 通江县| 安阳县| 九台市| 凤山县| 富裕县| 江孜县| 卫辉市| 阿合奇县| 巴青县| 庆元县| 油尖旺区| 荆州市| 马尔康县| 白城市| 苍梧县|