原文: http://margox.me/css3clock.html
初めて記事を投稿するので、とても興奮しています。
このプログラマーは長い間 Dribbble などのデザイナー Web サイトに夢中で、その美しいデザイン作品を見るととても興奮します。しかし、私は PS に習熟していないので、AI のことをすっかり忘れていました。フロントエンドのことを少し調べただけで、偶然目にした時計のデザインが斬新なものがいくつかあったので、CSSで実装するのは難しくなさそうだと思い、1時間かけて考えました。
レンダリング
技術的なポイント
- box-shadow 文字盤の質感は全てそれに依存します
- nth-child(x)は文字盤スケールの位置決めなどに使用します
- transform-origin これを使用します位置決め用 3 つの時計の針の回転の中心点
- キーフレーム時計の手のアニメーション効果
最初に DOM 構造を設計します。コードは次のとおりです:
<div class="clock-wrapper"> <div class="clock-base"> <div class="click-indicator"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> <div class="clock-hour"></div> <div class="clock-minute"></div> <div class="clock-second"></div> <div class="clock-center"></div> </div></div>構造は非常に単純です。スタイル名の各要素、中央の段落 空の div は当然ダイヤルスケールです。
次は CSS コードです
html,body{ height: 100%; margin: 0; padding: 0; background-image: linear-gradient(#e7e7e7,#d7d7d7);}/*时钟容器*/.clock-wrapper{ position: absolute; top: 0; right: 0; bottom: 100px; left: 0; width: 250px; height: 250px; margin: auto; padding: 5px; background-image: linear-gradient(#f7f7f7,#e0e0e0); border-radius: 50%; box-shadow: 0 10px 15px rgba(0,0,0,.15),0 2px 2px rgba(0,0,0,.2);}/*表盘*/.clock-base{ width: 250px; height: 250px; background-color: #eee; border-radius: 50%; box-shadow: 0 0 5px #eee;}/*表盘刻度容器*/.click-indicator{ position: absolute; z-index: 1; top: 15px; left: 15px; width: 230px; height: 230px;}/*表盘刻度*/.click-indicator div{ position: absolute; width: 2px; height: 4px; margin: 113px 114px; background-color: #ddd;}/*分别设置各个刻度的位置和角度*/.click-indicator div:nth-child(1) { transform: rotate(30deg) translateY(-113px);}.click-indicator div:nth-child(2) { transform: rotate(60deg) translateY(-113px);}.click-indicator div:nth-child(3) { transform: rotate(90deg) translateY(-113px); background-color: #aaa;}.click-indicator div:nth-child(4) { transform: rotate(120deg) translateY(-113px);}.click-indicator div:nth-child(5) { transform: rotate(150deg) translateY(-113px);}.click-indicator div:nth-child(6) { transform: rotate(180deg) translateY(-113px); background-color: #aaa;}.click-indicator div:nth-child(7) { transform: rotate(210deg) translateY(-113px);}.click-indicator div:nth-child(8) { transform: rotate(240deg) translateY(-113px);}.click-indicator div:nth-child(9) { transform: rotate(270deg) translateY(-113px); background-color: #aaa;}.click-indicator div:nth-child(10) { transform: rotate(300deg) translateY(-113px);}.click-indicator div:nth-child(11) { transform: rotate(330deg) translateY(-113px);}.click-indicator div:nth-child(12) { transform: rotate(360deg) translateY(-113px); background-color: #c00;}/*时针*/.clock-hour{ position: absolute; z-index: 2; top: 80px; left: 128px; width: 4px; height: 65px; background-color: #555; border-radius: 2px; box-shadow: 0 0 2px rgba(0,0,0,.2); transform-origin: 2px 50px; transition: .5s; -webkit-animation: rotate-hour 43200s linear infinite;}/*分针*/.clock-minute{ position: absolute; z-index: 3; top: 60px; left: 128px; width: 4px; height: 85px; background-color: #555; border-radius: 2px; box-shadow: 0 0 2px rgba(0,0,0,.2); transform-origin: 2px 70px; transition: .5s; -webkit-animation: rotate-minute 3600s linear infinite;}/*秒针*/.clock-second{ position: absolute; z-index: 4; top: 20px; left: 129px; width: 2px; height: 130px; background-color: #a00; box-shadow: 0 0 2px rgba(0,0,0,.2); transform-origin: 1px 110px; transition: .5s; -webkit-animation: rotate-second 60s linear infinite;}.clock-second:after{ content: ""; display: block; position: absolute; left: -5px; bottom: 14px; width: 8px; height: 8px; background-color: #a00; border: solid 2px #a00; border-radius: 50%; box-shadow: 0 0 3px rgba(0,0,0,.2);}/*表盘中央的原型区域*/.clock-center{ position: absolute; z-index: 1; width: 150px; height: 150px; top: 55px; left: 55px; background-image: linear-gradient(#e3e3e3,#f7f7f7); border-radius: 50%; box-shadow: inset 0 -1px 0 #fafafa, inset 0 1px 0 #e3e3e3;}.clock-center:after{ content: ""; display: block; width: 20px; height: 20px; margin: 65px; background-color: #ddd; border-radius: 50%;}スタイル ファイルはこれですべてですが、この場合、3 つのポインターがすべて 12 時の位置にあるため、ポインターを移動する必要があります。
実際、もっと簡単な場合は、CSS でアニメーションのルールを設定するだけです。時針は 3600 秒で 360 度回転し、分針と秒針は 360 度回転します。
しかし、強迫性障害の人は、これは絶対に不可能だと言いました。正しい時間を示すことさえできない時計は偽物に違いないので、ここでは CSS の兄弟である JavaScript の助けを見つける必要があります。 head タグに追加することを忘れないでください。 何かを入れてください:
(function(){ //generate clock animations var now = new Date(), hourDeg = now.getHours() / 12 * 360 + now.getMinutes() / 60 * 30, minuteDeg = now.getMinutes() / 60 * 360 + now.getSeconds() / 60 * 6, secondDeg = now.getSeconds() / 60 * 360, stylesDeg = [ "@-webkit-keyframes rotate-hour{from{transform:rotate(" + hourDeg + "deg);}to{transform:rotate(" + (hourDeg + 360) + "deg);}}", "@-webkit-keyframes rotate-minute{from{transform:rotate(" + minuteDeg + "deg);}to{transform:rotate(" + (minuteDeg + 360) + "deg);}}", "@-webkit-keyframes rotate-second{from{transform:rotate(" + secondDeg + "deg);}to{transform:rotate(" + (secondDeg + 360) + "deg);}}" ].join(""); document.getElementById("clock-animations").innerHTML = stylesDeg;})();そうしないと、JS によって生成されたスタイル コードが存在する場所がなくなります。
OK、上記のコードを jsbin に置きました:
http://output.jsbin.com/xeraxe
--

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール
