メインコンテンツへスキップ
見出し画像

プログラミング初心者がJavaScriptで時計を作ってみた

    shum

    こんにちはこんばんは。グラフィックデザイナーのヨシツグシュンペイです。
    先日、Pythonの勉強を始めたnoteを書いたのですが

    Paizaラーニング Python3入門編 前半を終了したので所感をしたためる
    https://note.mu/peishum/n/n136bda059758

    最近ちょっとJavaScriptに浮気してました。
    何か作って人に見てもらおうと思った時に、Pythonだと作ったものをWebで公開するのがちょっとハードルが高いので、HTMLとの連携が良く、手っ取り早く見てもらうことができるJavaScriptをちょっとかじって、ブラウザで動く時計を作ってみました。
    記述の方法は違えど、基本的な考え方や構造はPythonとほとんど変わらないので、意外とすんなり作れました。
    作ったのはこれ。

    画像

    COLOR CLOCK
    http://spy.main.jp/clock/

    時刻によって背景の色がゆっくりと変化する時計です。
    日が昇り、沈むように、時間の経過とともにじわじわと色が移り変わっていき、24時間かけて色相環を一周します。
    今回はJavaScriptでの時刻表示が目的の一つだったので、このような形になってますが、眺めているうちに、これ時計表示無くして、色相だけで時刻読み取るようにした方がアートとして尖ってるしミニマルでかっこいいと思い始めたので、そのうち時刻の表示非表示を切り替えられるようにしたいと思います。

    構造としてはざっくりこんなかんじ。

    画像

    何時は何色、と決め打ちで指定するのではなく、取得した時刻を計算式に入れて直接色指定に利用しているのがこだわりポイントです。

    ほんとに初心者なのでめっちゃググりました。これらのサイトや記事を参考にさせていただきました。

    HTML

    HTMLでJavaScriptを使う方法
    http://proengineer.internous.co.jp/content/columnfeature/5817

    基礎から学ぶ!HTMLにCSSを適用させる方法【初心者向け】
    https://techacademy.jp/magazine/9647

    コーディングの基礎!HTMLでdivタグを使う方法【初心者向け】
    https://techacademy.jp/magazine/12452
    JavaScript

    現在時刻をテキストでリアルタイムに表示し続ける時計を作る方法
    https://www.nishishi.com/javascript-tips/realtime-clock-setinterval.html

    onloadイベントの使い方とハマりやすい注意点とはhttps://www.sejuku.net/blog/19754

    実数を整数に丸める4パターン
    https://ginpen.com/2011/12/07/rounding/

    ページの読み込み前・直後・完了時にスクリプトを実行する方法いろいろ
    https://www.nishishi.com/javascript-tips/onload-page.html

    JavaScriptにおける数値⇔文字列の型変換あれこれ
    https://lealog.hateblo.jp/entry/2013/02/28/005010

    数値→文字列、文字列→数値の変換
    https://www.softel.co.jp/blogs/tech/archives/5524

    joinや+演算子で配列や文字列を連結・結合する
    https://www.sejuku.net/blog/21149

    複数の条件式を組み合わせる(if..else if)
    https://www.javadrive.jp/javascript/if/index3.html

    if~else文
    https://www.pazru.net/js/kihon/11.html

    JavaScript if文の == と === の違い
    https://itsakura.com/javascript-if-equal-diff

    letとvarの使い方とスコープの違い
    https://www.sejuku.net/blog/58429

    Javascriptでhtmlを動的に書き換える方法!
    https://qiita.com/n_oshiumi/items/5795de01187d5aafca07

    タグ属性やスタイル属性をScriptで変更する
    http://manabu.quu.cc/up/6/e61525m0.htm#TxtHelp_target

    ウェブページの背景色を動的に変更する方法
    https://www.nishishi.com/javascript-tips/doc-bgcolor.html

    getElementByIdを完全理解する3つのコツ!
    https://www.sejuku.net/blog/27019

    JavaScriptで特定の要素やhtml,body要素の背景色を変更するなどの「style属性を追加する」方法
    https://www.imamura.biz/blog/26926

    ライブラリを使わない素のJavaScriptでDOM操作
    https://qiita.com/kouh/items/dfc14d25ccb4e50afe89

    Colors HSL
    https://www.w3schools.com/colors/colors_hsl.asp
    CSS

    いつか使うかも?cssのfont-sizeをビューポート-パーセンテージで指定する
    https://www.tam-tam.co.jp/tipsnote/html_css/post8935.html

    CSSのwidth(幅)とheight(高さ)の指定方法をマスターしよう
    https://saruwakakun.com/html-css/basic/width-height

    回り込みの設定
    http://www.webword.jp/cssguide/ref-visible/index4.html

    floatとclearの応用
    http://sakichin.com/chapter02/chapter02_step05_02.html

    CSSで中央寄せの方法いろいろメモ
    https://qiita.com/KAMEch/items/b52c5e23212b8fef81a7

    【CSS】Vertical-alignとtext-align、margin:autoを極めて上下中央、もう配置に困らないためのまとめ
    http://unitopi.com/css-centering-2/

    CSSで中央寄せする9つの方法(縦・横にセンタリング)
    https://saruwakakun.com/html-css/basic/centering

    CSS でテキストの縦揃えを上揃え, 中央揃え, 下揃えにする方法
    http://phiary.me/css-text-vertical-top-middle-bottom/

    CSSのmarginとは?paddingとは?余白の指定方法まとめ
    https://saruwakakun.com/html-css/basic/margin-padding

    HTMLでページ上部の空白、余白を消す方法
    http://shiru-web.com/2017/06/26/01-62/

    HTML5でHeader上部の隙間を埋める
    https://qiita.com/silverskyvicto/items/2c10dc50d80ba89422c8

    ページや要素の幅に合わせて文字サイズを変更する方法
    https://teratail.com/questions/49808

    IDを使った指定
    https://www.tagindex.com/stylesheet/basic/format3.html
    その他

    様々なファビコンを一括生成。favicon generator
    https://ao-system.net/favicongenerator/

    正しいfaviconの設定方法を対応ブラウザ別にまとめる
    https://glatchdesign.com/blog/web/coding/943

    【2018年版】Google Fontsの使い方:初心者向けに解説!
    https://saruwakakun.com/html-css/basic/google-fonts

    Google Fonts
    https://fonts.google.com/

    JavaScriptもそうですけど、CSSについてかなり調べました。
    記事を書いてくださった方々、ありがとうございます!おかげで時計を作れました。みなさんもよかったら参考にしてみてください。

    ちょっと時計づくりにハマり始めて、上記のCOLOR CLOCKと別にあと2つ時計を作ってあるので、またnoteで紹介します。
    そして新作も開発中です。完成したらこちらもnoteにて報告します。

    最後まで読んでくださってありがとうございます!
    それではまた!

    あなたへのおすすめ