中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

怎么使用純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

海盐县| 祁东县| 乌兰浩特市| 宣武区| 溆浦县| 潜江市| 修文县| 厦门市| 文登市| 彰武县| 长泰县| 凌源市| 莎车县| 海宁市| 甘谷县| 米易县| 牙克石市| 广安市| 中牟县| 阿拉善盟| 清水河县| 阿拉善左旗| 苏尼特右旗| 玛纳斯县| 邵阳县| 光山县| 屯昌县| 泰顺县| 潮安县| 那坡县| 东兴市| 沾化县| 宣城市| 深水埗区| 镶黄旗| 石泉县| 昌都县| 临湘市| 晋州市| 绿春县| 阿鲁科尔沁旗|