これで スクリーンショットを撮ります: ケース知識ポイント分析: 1. 位置決めを使用して時計の描画を完成させます。 2. 背景には放射状グラデーションが使用されています。 3. JavaScript を使用して、スケールと時間数値の回転を完了します。 4. Date() オブジェクトを使用してシステム時刻を取得し、時針が対応するスケールを指すようにします。 5. タイマーを使用して時間を継続的に更新し、時針の動きを完了します。 1. HTMLソースコード <div id="clock-wrap"> <div id="時計"> <ul id="リスト"> </ul> </div> <div id="num"> <ul> <li>12</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>10</li> <li>11</li> </ul> </div> <div id="時間"></div> <div id="min"></div> <div id="sec"></div> <div id="circle"></div> </div> 2. CSSスタイル <style id="css">/*JavaScript で取得されたスタイル タグに id が追加され、それに css スタイルが追加されることに注意してください。 */ ボディ、ul{ マージン:0; パディング:0;} 体{ フォント:1em "マイクロソフト 弥平"; 色:#666; 背景色:#333;} h1{ テキスト配置:中央; 色:#eee; フォントサイズ:3rem;} li{ リストスタイル:なし;} p{ テキスト配置:中央; 色:#ddd; 位置:相対; 上:100ピクセル; } { 色:#999; テキスト装飾:なし; 遷移:0.2秒;} ホバー{ 色:#ddd;} #時計ラップ{ 幅:400ピクセル; 高さ:400px; 境界線:10px 実線 #fff; 境界線の半径:50%; マージン:80px 自動 0; 位置:相対; ボックスシャドウ:0 0 40px rgba(0,0,0,1)} #時計 ul{ 幅:400ピクセル; 高さ:400px; 位置:相対; 境界線の半径:50%; 背景:放射状グラデーション(中心の円、#667eea、#764ba2); box-shadow:0 0 50px rgba(0,0,0,0.5) inset; /*内側の影を設定する*/ } #時計 ul li{ 位置:絶対; 残り:50%; 左マージン:-2px; トップ:0; 幅:4px; 高さ:10px; 背景:rgba(255,255,255,.5); transform-origin:center 200px; /*li の回転中心は円の中央にあります。 */ } #clock li:nth-child(5n+1){ /* 5 つのスケールがグループを形成し、各グループの最初のスケールが長くなる必要があります。 */ 高さ:18px; } #番号{ 位置:絶対; 幅:360ピクセル; 高さ:360ピクセル; 左:0; 右:0; トップ:0; 下:0; マージン:自動; } #num li{ 位置:絶対; 残り:50%; 左マージン:-10px; トップ:0; 色:rgba(255,255,255,.5); フォント:2em Arial、Helvetica、サンセリフ; 変換の原点:center 180px;} #時間、#分、#秒 背景:#fff; 位置:絶対; 残り:50%; 上位:50%; transform-origin:bottom; /* 時針の回転点は下にあります。 */ ボックスシャドウ:0 0 6px rgba(0,0,0,.5) } #時間{ 幅:14px; 高さ:100px; 左マージン:-7px; 上マージン:-100px; 境界線の半径:3px; } #分{ 幅:10px; 高さ:150px; 左マージン:-5px; 上マージン:-150px; 境界線の半径:2px; } #秒{ 幅:4px; 高さ:180ピクセル; 左マージン:-2px; 上マージン:-180px; 境界線の半径:1px; } #丸{ 幅:40px; 高さ:40px; 境界線の半径:50%; 背景:#fff; 位置:絶対; 残り:50%; 左マージン:-20px; 上位:50%; 上マージン:-20px; ボックスシャドウ:0 0 20px rgba(0,0,0,.4)} </スタイル> 3. JavaScriptコード <スクリプト> window.onload = 関数(){ var oList = document.getElementById("リスト"); var oCSS=document.getElementById("css"); //スタイル タグは id 属性を追加することもできます。 var aNums = document.getElementById("num").getElementsByTagName("li"); var oHour = document.getElementById("時間"); var oMin = document.getElementById("min"); var oSec=document.getElementById("sec"); var aLi=""; var sCSS=""; for(var i=0;i<60;i++){ //60 回ループして、各スケールのスケール値と回転度を生成します。 aLi+="<li></li>"; sCSS+="#clock li:nth-child("+(i+1)+"){transform:rotate("+i*6+"deg);}" } (var i=0;i<12;i++){ sCSS+="#num li:nth-child("+(i+1)+"){transform:rotate("+i*30+"deg);}" } oList.innerHTML=aLi; oCSS.innerHTML+=sCSS; //css を元の CSS ドキュメントに追加する必要があります。 myTime(); //初期化関数。 setInterval(myTime,1000); // 1 秒ごとに関数を実行するようにタイマーを設定します。 関数myTime(){ var oDate=新しいDate(); var iSec=oDate.getSeconds(); // 秒単位の精度で分を表示します。 var iMin=oDate.getMinutes()+iSec/60; //時間は分と秒まで正確です。回転時に精度を上げることができます。 var iHour=oDate.getHours()+iMin/60; oSec.style.transform="rotate("+iSec*6+"deg)"; oMin.style.transform="rotate("+iMin*6+"deg)"; oHour.style.transform="rotate("+iHour*30+"deg)"; // 時針の方向を正確にするには、分と秒を含める必要があります。 } } </スクリプト> 上記は、CSS3 トランスフォームを使用して動く 2D 時計を作成する詳細です。CSS3 トランスフォームの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 |
<<: base target="" はリンクのターゲットオープンフレームを制御します
>>: JavaScript は単一のリンクリストプロセス分析を実装します
WeakMap オブジェクトは、キーが弱参照であるキー/値のペアのコレクションです。キーはオブジェク...
目次結果を一目で見るハート効果デジタルスクロールアニメーションアニメーションのように結果を一目で見る...
1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...
序文WEB 開発では、クロスドメイン リクエストが頻繁に発生します。クロスドメインの問題を解決する方...
昨日は写真をアップロードしてリンクを返す機能を実装していました。プロジェクトが Tomcat に再デ...
1. まず、公式ウェブサイト https://www.python.org/downloads/so...
目次1. Redisイメージを取得する2. 6つのRedisコンテナを作成する3. Redisコンテ...
目次ディレクトリ構造binディレクトリconfディレクトリlibディレクトリwebapps ディレク...
目次1. ブール2. 表現3. マルチクラスパッケージ4. v-bind でクラス class を直...
目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...
1. 背景Sysbench は、システムのハードウェア パフォーマンスをテストできるストレス テスト...
以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピー<!DO...
目次ビジネスロジックデータテーブル構造クエリロジックSQL スクリプトスクリプトの説明ビジネスロジッ...
1. フローティング方式を使用する効果画像: コードは次のとおりです: (.content の高さは...
リストは、テーブルをコンテナーとして使用するテキストまたはグラフの形式として定義されます。商品の種類...