ホームページ ウェブフロントエンド htmlチュートリアル 素晴らしいインク スプレー アニメーション トランジション効果を備えたモーダル ウィンドウを開く特殊効果_html/css_WEB-ITnose

素晴らしいインク スプレー アニメーション トランジション効果を備えたモーダル ウィンドウを開く特殊効果_html/css_WEB-ITnose

Jun 24, 2016 am 11:23 AM

簡単なチュートリアル

これは、CSS3 と jQuery を使用して作成された、クールなインクを噴霧するオープン モーダル ウィンドウ効果です。この特殊効果は、PNG インク スプレー スプライト画像とsteps() 関数を使用して、ボタンをクリックしたときにインクが広がる効果を作成し、全体の効果は画面にインクを振りかけるようなもので、画面の色が変わります。

用意したスプライト画像とCSSのsteps()関数を利用して、様々な滑らかな遷移アニメーション効果を作成できます。一部のエフェクト画像は、After Effects ツールを使用して特定のビデオから直接抽出できます。必要なビデオ フレームを連続 PNG イメージに変換し、これらのイメージをスプライト イメージに結合できます。

デモを見る プラグインをダウンロードする

使用方法

HTML構造

このエフェクトのHTML構造は、3つの主要な部分に分かれています: main.cd-main-contentページの主要部分、div .cd-modal はモーダル ウィンドウ、div.cd-transition-layer はアニメーション トランジション レイヤーです。

<main class="cd-main-content">  <div class="center">    <h1>Ink Transition Effect</h1>    <a href="#0" class="cd-btn cd-modal-trigger">Start Effect</a>  </div></main> <!-- .cd-main-content -->  <div class="cd-modal">  <div class="modal-content">    <h1>My Modal Content</h1>         <p>      Lorem ipsum dolor sit amet, consectetur adipisicing elit.       Ad modi repellendus, optio eveniet eligendi molestiae?       Fugiat, temporibus!     </p>  </div> <!-- .modal-content -->    <a href="#0" class="modal-close">Close</a></div> <!-- .cd-modal -->  <div class="cd-transition-layer">   <div class="bg-layer"></div></div> <!-- .cd-transition-layer -->
ログイン後にコピー

CSS スタイル

モーダル window.cd-modal は、最初は可視性: 非表示によって非表示になっており、高さと幅の両方が 100% に設定され、固定位置が使用されます。

ユーザーがトリガー ボタン a.cd-modal-trigger をクリックすると、.visible プロパティを通じてモーダル ウィンドウが表示されるように設定されます。

.cd-modal {  position: fixed;  top: 0;  left: 0;  z-index: 3;  height: 100%;  width: 100%;  opacity: 0;  visibility: hidden;}.cd-modal.visible {  opacity: 1;  visibility: visible;}
ログイン後にコピー

div.cd-transition-layer 要素は、スプレー インク効果を持つアニメーション化されたトランジション レイヤーを作成するために使用されます。初期状態では、可視性: 非表示、高さと幅が 100% に設定され、固定位置が使用されます。

.cd-transition-layer {  position: fixed;  top: 0;  left: 0;  z-index: 2;  height: 100%;  width: 100%;  opacity: 0;  visibility: hidden;  overflow: hidden;}
ログイン後にコピー

その子要素 ​​div.bg-layer は、背景画像としてスプライト画像を使用し、background-size: 100%、高さ 100%、幅 2500% を設定します (このデモでは、ink.png には 25 フレームがあるため)。まず、ink.png の最初のフレームが div.cd-transition-layer 内の中央に配置されます。

.cd-transition-layer .bg-layer {  position: absolute;  left: 50%;  top: 50%;  transform: translateY(-50%) translateX(-2%);  height: 100%;  /* our sprite is composed of 25 frames */  width: 2500%;  background: url(../img/ink.png) no-repeat 0 0;  background-size: 100% 100%;}
ログイン後にコピー

上記のセンタリング方法では、通常、次のコードを使用して要素をセンタリングするために絶対位置を使用することに注意してください:

position: absolute;left: 50%;top: 50%;transform: translateY(-50%) translateX(-50%);
ログイン後にコピー

このデモでは、ink.png スプライト イメージの最初のフレームをセンタリングする必要があります。 div .bg-layer の幅は親要素の幅の 25 倍であるため、translateX(-(50/25)%) を使用して中央に配置します。

インク スプレー アニメーションを作成するには、div.bg-layer の値を変更する必要があります。 @keyframes フレーム アニメーションは次のように定義できます。

すごいです

上記のフレーム アニメーションでは、アニメーションの最後に、ink.png スプライトの最後のフレームが div.cd-transition-layer の中央に配置されます。

上記の 100% でのtranslateX の値は次のように理解できます: デモには 25 フレームがあるため、最後のフレームを表示するには、.bg-layer レイヤーを -100% * (25 – 1) 移動する必要があります。 ) = -96%。次に、最後のフレームを中央に配置する必要があります。これには、-2% の追加調整が必要となるため、translateX() の最終値は -98% になります。

ユーザーがトリガー ボタン a.cd-modal-trigger をクリックすると、.cd-transition-layer が .visible クラスで追加されて表示され、インク スプレー アニメーションが .opening クラスを通じてトリガーされます。 。

@keyframes cd-sequence {  0% {    transform: translateY(-50%) translateX(-2%);  }  100% {    transform: translateY(-50%) translateX(-98%);  }}
ログイン後にコピー

JavaScript

デモでは、ユーザーがトリガー ボタンとモーダル ウィンドウを閉じるボタンをクリックしたときに、対応するクラスを追加および削除するために jQuery が使用されます。

また、png画像の比率を変形しないように調整するためにもjQueryを使用しています。スタイル ファイルでは、.bg レイヤーの各フレームの幅と高さがビューポートと同じサイズに設定されます。ただし、ユーザーのモニターのビューポートの縮尺が異なる場合があるため、一部のフレームが完全に表示されないことがあります。

setLayerDimensions() 関数は、これらの問題を修正するために使用されます。

すごい

出典: jQuery ホーム

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

See all articles