これで スクリーンショットを撮ります: ケース知識ポイント分析: 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 は単一のリンクリストプロセス分析を実装します
1. SHOW PROCESSLISTコマンドSHOW PROCESSLIST は実行中のスレッド ...
この記事では、reduce()、filter()、map()、every()、some()、spre...
ユーザーエクスペリエンスと使いやすさを向上させるために、入力ボックスなど、Web ページでユーザーが...
目次1. オペレーター要約する1. オペレーター演算子は、代入、比較、算術演算などの機能を実装するた...
1. 環境と準備1. Ubuntu 14.04 2.Docker環境2. 建設プロセス1. ミラーソ...
目次1. はじめに2. バックアップとリカバリの簡単な定義3. 復旧計画で考慮すべきいくつかの要素4...
最近、LAN 内のすべてのホスト名を一覧表示する必要があります (SMB プロトコル)。しかし、fi...
1. 背景多くのブログや記事を読みましたが、JVM のメモリ割り当て方法に関する包括的な記事は見つか...
目次1. タスクキュー2. 混乱を招く問題を説明する1. setTimeout(f1,0)とは何です...
MySQL では、データベースはデータ ディレクトリ内のディレクトリに対応します。データベース内の各...
目次開発中に発生した問題解決具体的な実装実績まとめバーチャルリストは、スクロールコンテナ要素の表示領...
インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...
MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...
目次解決策1解決策2テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎま...
Web プロジェクトを war にパッケージ化するアイデアにとって最も重要なことは、アトリフィカを...