質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

2回答

772閲覧

SVG, JavaScriptで時計作成中

Tnmk

総合スコア4

SVG

SVGは、XMLを基盤とした2Dベクター画像記述言語。画像を線・面といった図形の集合体として扱うベクター画像のため、環境に適した表示が可能です。アニメーション機能もサポートされており、簡単なインタラクティブコンテンツ作成もできます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2020/04/05 16:06

svgもjavascriptも初心者なのですが、好奇心に負けアナログ時計作成に足を踏み入れてしまいました。
私には沼が少し深過ぎたようです。。。
でもここまで来たら意地でも作りたいのでご教授お願いします。

html

1<!DOCTYPE html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>clock</title> 5 6 <script type="text/javascript"> 7 8 const hour = document.querySelector('hourhand'); 9 const minute = document.querySelector('minutehand'); 10 const second = document.querySelector('secondhand'); 11 12 13 const date = new Date(); 14 const sec = date.getSeconds()/60*360; 15 const min = date.getMinutes()/60*360+(s/60); 16 const hour = date.getHours()/12*360+(m/12); 17 18 second.style.transform='rotate(${sec}deg)'; 19 second.style.transform-origin='100 100'; 20 21 minute.style.transform='rotate(${min}deg)'; 22 minute.style.transform-origin='100 100'; 23 24 hour.style.transform='rotate(${hour}deg)'; 25 hour.style.transform-origin='100 100'; 26 27 28 </script> 29 </head> 30 <body> 31 32 33 <svg width="200" height="200"> 34 <g> 35 <circle id="center" 36 style="fill:#128A86; stroke: #C1EFED; 37 stroke-width: 2px;" 38 cx="100" cy="100" r="3" /> 39 <circle id="circle" 40 style="fill:#20B7AF" stroke: #FFF; 41 stroke-width: 12px; 42 cx="100" cy="100" r="80" /> 43 </g> 44 <g > 45 <line x1="100" y1="100" 46 x2="100" y2="60" 47 style="stroke-width: 6px; stroke: #fffbf9;" 48 id="hourhand" /> 49 </line> 50 <line x1="100" y1="100" 51 x2="100" y2="40" 52 style="stroke-width: 4px; stroke: #fdfdfd;" 53 id="minutehand" /> 54 55 <line x1="100" y1="100" 56 x2="100" y2="25" 57 style="stroke-width: 2px; stroke: #ff8400;" 58 id="secondhand"/> 59 </g> 60 <circle id="center" 61 style="fill:#128A86; stroke: #C1EFED; stroke-width: 2px;" 62 cx="100" cy="100" r="3" /> 63 </svg> 64 </body> 65</html> 66

css

1svg { 2 display: block; 3 position: absolute; 4 top: 100px; 5 left: 100px; 6 transform: translate(-50%, -50%);}

まず形にすらなっていないかもしれませんがお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

https://codepen.io/vaskopetrov/pen/yVEXjz

自分はcodepen でいくつか検索して、それを参考につくったことあります。
直接的な回答でなくてすいません。

投稿2020/04/05 16:14

may88seiji

総合スコア79

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tnmk

2020/04/07 14:14 編集

svgへの理解が欠けているので今度はまずこの形で自作してみようと思います。 ご回答ありがとうございました。
guest

0

なんとなくフルスクラッチで書いてみました

※ざっと書いたのでバグってたらすみません

投稿2020/04/06 03:26

編集2020/04/06 03:29
yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2020/04/06 03:32 編集

ちなみにこれは正しく円周上を針が回っているわけではなく 60角形の外周上を針の先端が移動しています (つまり針がびみょーに伸び縮みしている) ポイントは ・座標を求めるのにラジアンでcos/sinすること ・マイナス90度から6度ずつ270度まで60回処理すること これがわかれば後はなんとでもなります
Tnmk

2020/04/07 14:13

何とか動きましたが、ほぼ丸写し… 分からないところを調べながら作成したので以前よりは動かし方の全容が掴めた気がします。 JavaScriptに関してもsvgに関しても分からないことが多いのでもう少し理解を深めた後再チャレンジしてみようと思います。 ちなみに時計って難易度でいうとどれ位なんでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問