ホームページ  >  記事  >  ウェブフロントエンド  >  純粋な CSS を使用してハサミの効果を実現する方法 (ソースコードを添付)

純粋な CSS を使用してハサミの効果を実現する方法 (ソースコードを添付)

不言
不言オリジナル
2018-09-10 15:38:562496ブラウズ

この記事の内容は、純粋な CSS を使用してハサミの効果を実現する方法に関するものです (ソースコードが添付されています)。必要な友人が参考になれば幸いです。あなた。

エフェクトのプレビュー

純粋な CSS を使用してハサミの効果を実現する方法 (ソースコードを添付)

ソースコードのダウンロード

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

コード解釈

domを定義し、コンテナには 2 つの .half 要素が含まれます。それぞれははさみの半分を表し、そのサブ要素の handle はハンドルを表し、blade はナイフを表し、最後の .joint は左右の部分を接続するリベットを表します:

<figure>
    <div>
        <span></span>
        <span></span>
    </div>
    <div>
        <span></span>
        <span></span>
    </div>
    <div></div>
</figure>

中央表示:

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

はコンテナのサイズを定義します。ここで outline は補助線です: 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;
}
outline が補助線である場合、ハーフハサミのサイズを定義します:

.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));
    }
}
Drawナイフを選択し、丸い角の属性を使用してそれを描画します。 ナイフの上部の先端を削除します:

rrreee

疑似要素を使用してナイフの下部に三角形を描画し、ナイフとハンドルをよりしっかりと接続します:

rrreee

Makeナイフの半分を傾けます:

rrreee

scale() code> 関数を使用してハサミの残りの半分を描画します: <p>rrreee<a href="http://www.php.cn/css-tutorial-409683.html" target="_blank" title="如何使用纯CSS实现条纹错觉的动画效果(附源码)"> 左半分と右半分を接続するリベットを描画します: </a>rrreee</p> アニメーション効果を追加するマウスがホバリングしています: <p>rrreee<a href="http://www.php.cn/css-tutorial-409474.html" target="_blank" title="如何使用css实现中国结的效果(代码)">最後に、補助線を削除することを忘れないでください。 </a></p>完了! <p class="comments-box-content"><br>関連する推奨事項: </p>🎜🎜純粋な CSS を使用して縞模様のイリュージョン アニメーション効果を実現する方法 (ソース コード付き) 🎜🎜🎜🎜 CSS を使用して中国の結び目効果を実現する方法 (コード) 🎜🎜🎜🎜🎜

以上が純粋な CSS を使用してハサミの効果を実現する方法 (ソースコードを添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。