目次
同様の効果を達成するにはどうすればよいでしょうか?
box-shadow を使用して次のことを実現します
以下では、放射状のグラデーションを使用します
clip-path
最后
ホームページ ウェブフロントエンド CSSチュートリアル CSS3 クリップパス プロパティの動作: 動的領域のトリミング

CSS3 クリップパス プロパティの動作: 動的領域のトリミング

Dec 20, 2021 am 10:30 AM
css3

この記事では、CSS3 のクリップパス (クリッピングパス) を理解し、クリップパスを使用して動的領域トリミングを実現する方法を紹介します。

CSS3 クリップパス プロパティの動作: 動的領域のトリミング

今日 CodePen にアクセスして、非常に興味深い効果を確認しました:

CSS3 クリップパス プロパティの動作: 動的領域のトリミング

CodePen デモ -- マテリアル デザインBennett Feely によるメニュー

Web サイト: https://codepen.io/bennettfeely/pen/fHdFb

この効果については、探索して学ぶ価値のある点がまだいくつかあります。見てください、立ち上がって見てください。

同様の効果を達成するにはどうすればよいでしょうか?

まず考えてみてください。上記の効果を達成するように求められたら、あなたはどうしますか?

ここでは、可能な方法をいくつか列挙します:

  • shade box-shadow

  • gradientradial-gradient

  • スケール変換:scale()

1 つずつ簡単に説明します。

box-shadow を使用して次のことを実現します

box-shadow を使用する場合、コードはおおよそ次のとおりです:

<div class="g-container">
    <div class="g-item"></div>
</div>
ログイン後にコピー
rrree

核心は次のとおりです:

  • 外側の層には、overflow: hiddenenでマスク セットが設定されています。

  • ##内側の要素がホバーしているとき、## を実装します。 #box-shadow : 0 0 0 0 #fff

    から box-shadow: 0 0 0 420px #fff 変更

  • 効果は次のとおりです。

CSS3 クリップパス プロパティの動作: 動的領域のトリミングアニメーション全体はシミュレートされていますが、最も致命的な問題は 2 つあります。

    マウスが円から離れると、全体がアニメーション 逆にアニメーションが進み、白い部分が消え始めます ボタン操作をしたくても完了できません
  • アニメーション後の四角形内に隠れている要素
  • ということで、
box-shadow

が良さそうですが、諦めるしかありません。

上記のデモのコード--CodePen デモ--box-shadow ズームインアニメーション

ウェブサイト: https://codepen.io/Chokcoco/pen/jOLRQNy

グラデーションのradial-gradientを使用して実現します

以下では、放射状のグラデーションを使用します

radial-gradient

CSS @propertyを追加すると、上記の効果を復元することもできます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>.g-container { position: relative; width: 400px; height: 300px; overflow: hidden; } .g-item { position: absolute; width: 48px; height: 48px; border-radius: 50%; background: #fff; top: 20px; left: 20px; box-shadow: 0 0 0 0 #fff; transition: box-shadow .3s linear; &amp;:hover { box-shadow: 0 0 0 420px #fff; } }</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;div class=&quot;g-container&quot;&gt;&lt;/div&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>放射状グラデーションのアニメーション効果を制御することで、ホバリング時に元の小さな円の背景が大きな円の背景になります。その効果は次のとおりです:

#emmm,効果は実際に復元され、問題も致命的です。 CSS3 クリップパス プロパティの動作: 動的領域のトリミング

これは背景の変更であるため、マウスを小さな円の上に置く必要はありません。マウスを置くだけで済みます。 div の範囲を入力すると、アニメーションが開始されます。これは明らかに間違っています
  • 最初の
  • box-shadow
  • メソッドと同様に、ナビゲーションの DOM白の下に隠れている要素は配置するのが簡単ではありません

  • 上記のデモのコード -- CodePen デモ -- アニメーションの放射状グラデーション ズーム
Web サイト: https://codepen.io/Chokcoco/pen/RwZOqWb

えっと、別の方法があります。

transform:scale()
をスケーリングすることで、特定の問題が発生します。ここでこれ以上拡張するつもりはありません。

したがって、ここで、上記の効果を実現したい場合の核心は次のとおりです。

アニメーションを開始するには、マウスを円の上に置く必要があります。アニメーション効果を引き込まずに範囲内を自由に移動します
  • アニメーションを展開した後、内部の DOM の配置はそれほど面倒ではありません。 Javascript を使用せずに、内部のコンテンツの表示と非表示を制御できます。
  • 動的領域トリミング
  • 私の記事 --
  • overflow: hidden を使用せずに overflow: hidden を実装するにはどうすればよいですか?
では、CSS で要素をクリップするいくつかの方法を紹介します。その中で、この効果を使用するのに最も適した方法は --

clip-path

です。

clip-path

を使用すると、動的クリッピング関数を非常に適切に実装でき、コードも非常に単純になります。

@property --size {
  syntax: &#39;<length>&#39;;
  inherits: false;
  initial-value: 24px;
}

.g-container {
    position: relative;
    width: 400px;
    height: 300px;
    overflow: hidden;
    background: radial-gradient(circle at 44px 44px, #fff 0, #fff var(--size), transparent var(--size), transparent 0);
    transition: --size .3s linear;
    
    &:hover {
        --size: 450px;
    }
}
ログイン後にコピー
<div class="g-container"></div>
ログイン後にコピー
ログイン後にコピー
使用する必要があるのは だけです。 Clip -path、最初に clip-path:circle(20px at 44px 44px)

を使用して、長方形の div を円に切り取ります。ホバリング時に、切り取り円の半径を拡大します。長方形の範囲全体。

効果は次のとおりです:

这样,我们就能完美的实现题图的效果,并且,内置的 DOM 元素,直接写进这个 div 内部即可。

<div class="g-container">
    <ul>
        <li>11111</li>
        <li>22222</li>
        <li>33333</li>
        <li>44444</li>
    </ul>
</div>
ログイン後にコピー

效果如下:

CSS3 クリップパス プロパティの動作: 動的領域のトリミング

CodePen Demo -- clip-path zoom in animation

网址:https://codepen.io/Chokcoco/pen/yLorrRm

很有意思的一个技巧,利用 clip-path 实现动态区域裁剪,希望大家能够掌握。

最后

好了,本文到此结束,希望本文对你有所帮助 :)

(学习视频分享:css视频教程

以上がCSS3 クリップパス プロパティの動作: 動的領域のトリミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) 純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) Jun 28, 2022 pm 01:39 PM

純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

CSSを上手に使って色々な変わった形のボタンを実現(コード付き) CSSを上手に使って色々な変わった形のボタンを実現(コード付き) Jul 19, 2022 am 11:28 AM

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

スペースを取らずにCSS内の要素を非表示にする方法 スペースを取らずにCSS内の要素を非表示にする方法 Jun 01, 2022 pm 07:15 PM

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS3でレースボーダーを実装する方法 CSS3でレースボーダーを実装する方法 Sep 16, 2022 pm 07:11 PM

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

CSS3でマウスクリックで画像を拡大する方法 CSS3でマウスクリックで画像を拡大する方法 Apr 25, 2022 pm 04:52 PM

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 Jun 10, 2022 pm 01:00 PM

テキストカルーセルと画像カルーセルを作成するにはどうすればよいですか?皆さんが最初に考えるのはjsを使うかどうかですが、実はテキストカルーセルや画像カルーセルも純粋なCSSでも実現できますので実装方法を見ていきましょう。

CSS3でアニメーションの回転速度を設定する方法 CSS3でアニメーションの回転速度を設定する方法 Apr 28, 2022 pm 04:32 PM

CSS3 では、「animation-timing-function」属性を使用してアニメーションの回転速度を設定できます。この属性は、アニメーションがサイクルを完了する方法を指定し、アニメーションの速度曲線を設定するために使用されます。構文は「element {アニメーションタイミング関数: 速度属性値;}"。

css3のアニメーション効果に変形はありますか? css3のアニメーション効果に変形はありますか? Apr 28, 2022 pm 02:20 PM

css3 のアニメーション効果には変形があり、「animation: アニメーション属性 @keyframes ..{..{transform: 変換属性}}」を使用して変形アニメーション効果を実現できます。アニメーション属性はアニメーション スタイルを設定するために使用され、変形スタイルを設定するには、transform 属性を使用します。

See all articles