ホームページ ウェブフロントエンド CSSチュートリアル カスタムプロパティを備えたCSSのタイマーバー

カスタムプロパティを備えたCSSのタイマーバー

Apr 03, 2025 am 10:59 AM

カスタムプロパティを備えたCSSのタイマーバー

最近、プロジェクトに目に見えるタイマーを実装する必要がありますが、リファレンスとしてプロジェクトには、すでに同様のタイマーUIデザインがあります。ユーザーは数が減少するのを見る必要はありませんが、「バー」が徐々に完全から空に減少するのを見たいと思っています。 「タイマー」UIを実装する方法がたくさんあるため、これについて言及しました。この記事は、これらすべての方法についてではなく(Codepenの検索結果がより役立つでしょう)、むしろ私にとって非常にうまく機能するものについてです。

私が必要とするタイムのタイプは、プロジェクトの「ターンタイム」バーと呼ばれるものです。アクションを実行すると、回転時間がトリガーされる可能性があり、その後のほとんどのアクションは、ターン時間の終了までブロックされます。したがって、透明な赤いバータイマーが正しいUIの選択です。それは人々にリズムと流れの感覚を与え、あなたはタイマーの終了時間を「感じ」、次の操作をスケジュールすることができます。

このタイマーの設定は非常に簡単です...

将来、コンテナの空の部分をスタイリングする必要がある場合に備えて、親/子要素の構造を作成しましょう。

<div>
  <div></div>
</div>
ログイン後にコピー

今、私たちは内側のバーのスタイルだけです。

 .Round-Time-Bar Div {
  高さ:5px;
  背景:線形勾配(下部、赤、#900);
}
ログイン後にコピー

これにより、タイムインジケータとして使用できる素敵な赤いバーが提供されます。

次に、カウントダウンする必要がありますが、ここでは機能を考慮する必要があります。このようなタイマーは、どれくらいの時間がかかるかを知る必要があります!この情報をHTMLで直接提供できます。これは、JavaScriptの使用を避けるという意味ではありません - 私たちはそれを受け入れています。 「ねえ、JavaScript、期間変数を教えてください。残りを処理してください」と言っています。

<div style="--duration: 5;">
  <div></div>
</div>
ログイン後にコピー

実際、このアプローチは、JavaScriptを処理する最新のDOMに非常に適しています。 --variableが正しい限り、いつでもDOM要素を再レンダリングでき、設計がこの状況をうまく処理できることを確認できます。このようなバリエーションを作成します。

それでは、アニメーションを始めましょう。良いニュースは、簡単だということです。これは単一行のキーフレームです:

 @KeyFrames RoundTime {
  に {
    /*アニメーション「width」よりも効率的*/
    変換:Scalex(0);
  }
}
ログイン後にコピー

水平にスケーリングしてもバーのスタイルが圧縮されていないため、バーを「圧縮」できます。これを行うと、幅をアニメーション化できます。これはそれほど大きな問題ではありません。特に、他のもののレイアウトが再調整されないためです。

次に、バーに適用します。

 .Round-Time-Bar Div {
  / * ... */
  アニメーション:RoundTime Calc(var( -  duration) * 1s)ステップ(var( - 持続時間))フォワード;
  変換オリジン:左中央。
}
ログイン後にコピー

--duration変数を使用してアニメーション期間を設定する方法をご覧ください。これはほとんどの作業を達成します。また、同じ数のsteps()を設定するために使用して、「グリッドごとにグリッド」を減少させます。 「Bid-by-Frame」はあなたが好きな視覚的なUI効果かもしれません(私は好きです)が、JavaScriptがいつでもこのバーを再レンダリングする可能性があるという考えにも適応し、Bid by-Frameで気づく可能性は低いです。整数を持続時間値として使用したため、このように使用できるようにしました。

ただし、スムーズなアニメーションが必要な場合は、これを行うことができます。

<div ...="" data-style="smooth"></div>
ログイン後にコピー

その後、 stepsを使用しないでください

 .Round-Time-Bar [data-style = "smooth"] div {
  アニメーション:RoundTime Calc(var( -  duration) * 1s)線形方向。
}
ログイン後にコピー

また、リニアアニメーションも使用していることに注意してください。これはタイマーにとって理にかなっているようです。それのように時間は緩和されません。それともそれは?とにかく、これはあなたの選択です。特定のポイントで加速または減速のように見えるタイマーが必要な場合は、それを求めてください。

同じdata-attributeベースのAPIを使用して、色の変更を実装できます。

 .round-time-bar [data-color = "blue"] div {
  背景:線形勾配(下部、#64B5F6、#1565C0);
}
ログイン後にコピー

最後のバリアントは、各「秒」の幅を修正することです。このようにして、10秒のタイマーは5秒のタイマーよりも長く見えます。

 .Round-Time-Bar [data-style = "sixed"] div {
  幅:calc(var( -  duration) * 5%);
}
ログイン後にコピー

これがデモンストレーションです:

CSSアニメーションを再起動するためのヒントに注意してください。

ああ、ところで、私はそれがあることを知っています<meter></meter>要素、それはよりセマンティックかもしれませんが、それ自体のUIは私がここで望むようにアニメーション化することはできません - 少なくともそれと戦うことはできません。しかし、それがもっとアクセスしやすいかどうかはわかりませんか?現在の価値を有用な方法で宣言していますか? JavaScriptを使用してリアルタイムで更新する場合<meter></meter>、よりアクセスしやすいタイマーでしょうか?誰かが知っているなら、私はここで解決策をリンクできます。

以上がカスタムプロパティを備えたCSSのタイマーバーの詳細内容です。詳細については、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)

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

あなたが見ている間、CSSグラデーションは良くなりました あなたが見ている間、CSSグラデーションは良くなりました Apr 11, 2025 am 09:16 AM

Lea verou&#039; conic-gradient()Polyfillの機能のリストに目を向けたことの1つが最後の項目でした。

静的フォームプロバイダーの比較 静的フォームプロバイダーの比較 Apr 16, 2025 am 11:20 AM

ここでは、「静的フォームプロバイダー」という用語を埋めてみましょう。あなたはあなたのHTMLを持ってきます

WordPressテーマでVueコンポーネントを構築する方法 WordPressテーマでVueコンポーネントを構築する方法 Apr 11, 2025 am 11:03 AM

インラインテンプレートディレクティブにより、既存のWordPressマークアップに対する進行性の強化として、リッチVUEコンポーネントを構築できます。

3種類のコード 3種類のコード Apr 11, 2025 pm 12:02 PM

新しいプロジェクトを開始するたびに、3つのタイプ、または必要に応じてカテゴリを検討しているコードを整理します。そして、これらのタイプは適用できると思います

PHPはテンプレートのA-OKです PHPはテンプレートのA-OKです Apr 11, 2025 am 11:04 AM

PHPテンプレートは、多くの場合、サブパーコードを促進するために悪いラップを取得しますが、そうである必要はありません。 PHPプロジェクトが基本を実施する方法を見てみましょう

See all articles