検索
ホームページウェブフロントエンドCSSチュートリアル純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)

CSS アニメーションを一時停止または再生するには、純粋な CSS メソッドを使用します。実現不可能と思われますか? それとも実現できたとしても、多くの CSS スタイルを必要とする非常に面倒な実装方法です。実際には、これは当てはまりません。CSS3 アニメーションには、アニメーションを一時停止したり再生したりできるプロパティがあります。この章では、純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現する方法を紹介します。 anime-play-state プロパティの概要 (詳細説明)。困っている友人は参考にしていただければ幸いです。

#animation-play-state プロパティ##

 animation-play-state: paused | running;

animation-play-state: プロパティは、アニメーションが実行中か一時停止かを定義します。これをクエリして、アニメーションが実行中かどうかを確認できます。さらに、その値を設定してアニメーションの再生を一時停止および再開することができます。

JavaScript を使用すると、CSS アニメーションの実行と再生を制御できます。いくつかの主要なコードを以下に示します。

html コード:

<div class="btn">stop</div> 
<div class="animation"></div>

css コード:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

js コード:

document.querySelector(&#39;.btn&#39;).addEventListener(&#39;click&#39;, function() {
    let btn = document.querySelector(&#39;.btn&#39;);
    let elem = document.querySelector(&#39;.animation&#39;);
    let state = elem.style[&#39;animationPlayState&#39;];
    
    if(state === &#39;paused&#39;) {
        elem.style[&#39;animationPlayState&#39;] = &#39;running&#39;;
        btn.innerText = &#39;stop&#39;;
    } else {
        elem.style[&#39;animationPlayState&#39;] = &#39;paused&#39;;
        btn.innerText = &#39;play&#39;;
    }
    
});

レンダリング (再生中および再生停止後):

純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)純粋な CSS 実装

純粋な CSS を使用して実現できるかどうかを調べてみましょう。

hover 擬似クラスの実装

hover 擬似クラスを使用して、マウスがボタン上に置かれたときのアニメーション スタイルの一時停止を制御します。

キーコードは次のとおりです:

html コード:

<div class="btn stop">stop</div> 
<div class="animation"></div>

css コード:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

.stop:hover ~ .animation {
    animation-play-state: paused;
}

レンダリング:

純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)もちろん、この方法は十分に賢明ではありません。マウスの自由を放すと、一度クリックして一時停止し、もう一度クリックして再生します。他の方法はありますか?

疑似クラスの実装を確認しました

前回の記事「CSSの面白い話題(8): Pure CSS Navigation Bar Tab Switching Solution」も同様です前述のように、ラジオ タグのチェックされた疑似クラスを使用し、さらに純粋な CSS を実装してクリック イベントをキャプチャします。

クリックされた要素を使用して、一部の CSS スタイルを制御できます。実装は次のとおりです。

html コード:

<input id="stop" type="radio" name="playAnimation"/>
<input id="play" type="radio" name="playAnimation"/>

<div class="box">
    <label for="stop">
        <div class="btn">stop</div>
    </label>
    <label for="play">
        <div class="btn">play</div>
    </label>
</div>

<div class="animation"></div>

css コード:

.animation {
    width: 100px;
    height: 100px;
    margin: 50px auto;
    background: deeppink;
    animation: move 2s linear infinite alternate;
}

input {
    display: none;
}

@keyframes move {
    0% {
        transform: translate(-100px, 0);
    }
    100% {
        transform: translate(100px, 0);
    }
}

.btn {
    width: 50px;
    margin: 10px auto;
    text-align: center;
    border:1px solid #ddd;
    padding: 10px;
    border-radius: 5px;
    cursor:pointer;
    
    &:hover {
        background: #ddd;
        color: #333;
    }
    
    &:active {
        background: #aaa;
    }
}

#stop:checked ~ .animation {
    animation-play-state: paused;
}

#play:checked ~ .animation {
    animation-play-state: running;
}

2 つの無線が #stop と #play になることを願っています。をクリックして、animation-play-state:pausedまたはanimation-play-state:runningをそれぞれ.animation要素に割り当てます。また、2 つのうち 1 つだけが有効になるため、2 つの無線タグには同じ name 属性を与える必要があります。

レンダリング:

純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)上記の例では、CSS アニメーションを一時停止して再生するために純粋な CSS メソッドが実装されています。

もちろん、ラジオをチェックボックスに置き換えたり、:target 疑似クラスセレクターを使用して上記と同じ効果を実現するなど、他の方法もあります。興味がある場合は、試してみてください。

以上が純粋な CSS を使用して CSS アニメーションの一時停止および再生効果を実現するにはどうすればよいですか? anime-play-stateプロパティの紹介(詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

Goofontsは、開発者妻とデザイナーの夫によって署名されたサイドプロジェクトであり、どちらもタイポグラフィの大ファンです。 Googleにタグを付けています

時代を超越したWeb開発記事時代を超越したWeb開発記事Apr 12, 2025 am 11:44 AM

Pavithra Kodmadは、彼らが変化したWeb開発に関する最も時代を超越した記事のいくつかであると考えていることについて、人々に推奨事項を求めました

セクション要素との取引セクション要素との取引Apr 12, 2025 am 11:39 AM

2つの記事がまったく同じ日に公開されました。

graphQlの練習JavaScript APIでクエリをクエリしますgraphQlの練習JavaScript APIでクエリをクエリしますApr 12, 2025 am 11:33 AM

GraphQL APIの構築方法を学ぶことは非常に挑戦的です。ただし、10分でGraphQL APIを使用する方法を学ぶことができます!そして、それは私が完璧になったことがあります

コンポーネントレベルのCMSコンポーネントレベルのCMSApr 12, 2025 am 11:09 AM

コンポーネントがデータが近くに住んでいる環境に住んでいる場合、視覚コンポーネントと

円にタイプを設定します...オフセットパス付き円にタイプを設定します...オフセットパス付きApr 12, 2025 am 11:00 AM

ここでは、Yuanchuanからの合法的なCSSの策略があります。このCSSプロパティオフセットパスがあります。むかしむかし、それはモーションパスと呼ばれ、その後改名されました。私

CSSで「戻る」ことは何をしますか?CSSで「戻る」ことは何をしますか?Apr 12, 2025 am 10:59 AM

Miriam Suzanneは、このテーマに関するMozilla開発者のビデオで説明しています。

現代の恋人現代の恋人Apr 12, 2025 am 10:58 AM

私はこのようなものが大好きです。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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