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

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

Sep 15, 2018 pm 03:44 PM
animation css3

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 までご連絡ください。

ホット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)

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

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

Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Apr 24, 2023 pm 04:55 PM

Microsoft が Windows 11 を発表したとき、多くの変化がもたらされました。変更点の 1 つは、ユーザー インターフェイスのアニメーションの数が増加したことです。一部のユーザーは表示方法を変更したいと考えており、その方法を見つける必要があります。アニメーションがあると、より快適でユーザーフレンドリーな印象になります。アニメーションは視覚効果を使用して、コンピュータをより魅力的に見せ、応答性を高めます。それらの中には、数秒または数分後にスライド メニューが表示されるものもあります。コンピュータには、PC のパフォーマンスに影響を与え、速度を低下させ、作業を妨げる可能性のあるアニメーションが数多くあります。この場合、アニメーションをオフにする必要があります。この記事では、PC 上でアニメーションの速度を向上させるいくつかの方法を紹介します。レジストリ エディターまたは実行するカスタム ファイルを使用して変更を適用できます。 Windows 11 でアニメーションを改善する方法

CSS を使用して要素の背景の回転アニメーション効果を実現する方法 CSS を使用して要素の背景の回転アニメーション効果を実現する方法 Nov 21, 2023 am 09:05 AM

CSS を使用して要素の回転背景画像アニメーション効果を実装する方法 背景画像アニメーション効果は、Web ページの視覚的な魅力とユーザー エクスペリエンスを向上させることができます。この記事では、CSS を使用して要素の背景の回転アニメーション効果を実現する方法を紹介し、具体的なコード例を示します。まず、背景画像を用意します。太陽や扇風機など、好きな画像を使用できます。画像を「bg.png」という名前で保存します。次に、HTML ファイルを作成し、ファイルに div 要素を追加して、次のように設定します。

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 (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

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

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

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

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

See all articles