Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Untitled

2025年09月21日に「Dev.to」が公開したITニュース「Untitled」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

ある開発者がプログラミングやウェブ制作で作成した動的なデモを紹介している。自身の技術を形にし公開する良い例であり、リンク先で実際に動作するコードを確認できる。システム開発を目指す初心者にとって、アイデアを具体化するヒントになるだろう。

出典: Untitled | Dev.to公開日:

ITニュース解説

この記事は、Webページを構成する基本的な三つの技術、HTML、CSS、そしてJavaScriptを組み合わせて作られた、視覚的なアニメーションのデモンストレーションである。具体的には、画面上で動きを伴うローディングインジケーターのような要素がどのように構築されているかを示しており、システムエンジニアを目指す上でウェブアプリケーションのフロントエンド開発の基礎を理解する良い出発点となる。

まず、Webページの骨組みを作るHTMLの役割から見ていく。HTMLは、ウェブページの構造を定義するためのマークアップ言語だ。このデモでは、主に<div>という汎用的な要素が使われている。<div>はそれ自体には特定の意味を持たないが、CSSでスタイルを適用したり、JavaScriptで操作したりするためのまとまりを作る際によく用いられる。最も外側にはconというクラス名が付いたdivがあり、これがアニメーション全体のコンテナとなっている。このコンテナの中に、二本の線(hrhというクラス名が付いたdiv)と、複数の点(dotsというコンテナに囲まれたd1d2d3d4という四つの点)が配置されている。これらの要素は、それぞれが個別の部品として存在し、後のCSSでそれぞれの見た目や位置が調整されることを前提としている。クラス名が付与されているのは、CSSで特定の要素にスタイルを適用したり、JavaScriptで要素を選択して操作したりするための目印となる。

次に、Webページのデザインと動きを司るCSSの役割について説明する。CSSは、HTMLで定義された要素に対して、色、サイズ、配置、そしてアニメーションといった装飾を施すためのスタイルシート言語である。このデモの大部分の視覚効果と動きはCSSによって実現されている。

まず、Webページ全体の表示領域であるbody要素に対しては、画面いっぱいに広がり、内部の要素を中央に配置する設定がされている。width: 100vw; height: 100vh;は、ビューポート(ブラウザの表示領域)の幅と高さ全体を使うことを意味し、display: flex; justify-content: center; align-items: center;は、要素を水平方向と垂直方向ともに中央に配置するための指定だ。背景色を黒に設定することで、白いアニメーション要素が際立つように工夫されている。

conクラスを持つコンテナは、幅と高さが150ピクセルの正方形で、内部の要素を再度中央に配置する設定がされている。position: relative;は、このコンテナの子要素がposition: absolute;で配置される際に、このコンテナを基準にして位置が決まるようにするための重要な指定だ。

線を表すhrhクラスの要素は、それぞれ白い長方形として描画され、border-radius: 5px;で角が丸くされている。position: absolute;により、これらはコンテナ内の通常の配置順序から切り離され、重ねて配置される。そして、これらの要素にアニメーションが適用されている。

点々を表すdotsクラスのコンテナは、その子要素である各ドットを横方向に均等に配置するためのdisplay: flex; justify-content: space-around;が指定されている。個々のドット(d1d2d3d4)は、白い小さな円形として描画されている。これらにもアニメーションが適用され、top: 50px;で初期位置が調整されている。

このデモの核心的な動きを作り出しているのは、CSSの@keyframes animeルールである。@keyframesは、アニメーションの開始から終了までのスタイル変化を定義するもので、ここでは0%(アニメーションの開始時)から100%(アニメーションの終了時)にかけて、transform: rotate(0deg)(0度回転)からtransform: rotate(360deg)(360度回転)へと変化する、つまり一回転するアニメーションが定義されている。

このanimeという名前のアニメーションは、hrh、そして各dot要素にanimation: anime 3s linear infinite;という形で適用されている。これは、「animeという名前のアニメーションを、3秒かけて、linear(一定の速度)で、infinite(無限に繰り返す)」という意味だ。

さらに、h要素にはanimation-delay: 1.5s;が、各dot要素にはanimation-delay: var(--d);が指定されている。animation-delayは、アニメーションが開始するまでの待ち時間を設定するプロパティだ。h要素は1.5秒遅れてアニメーションが開始するため、hr要素とタイミングがずれて動き、視覚的に複雑な効果を生み出している。

そして、dot要素のanimation-delayに使われているvar(--d)という記述は、CSSカスタムプロパティ、いわゆるCSS変数を参照している。この変数--dの値がJavaScriptによって動的に設定されることで、各ドットのアニメーション開始タイミングが個別に制御されるのだ。

最後に、JavaScriptの役割について説明する。JavaScriptは、Webページに動きや対話性をもたらすプログラミング言語である。このデモでは、JavaScriptは各ドットのCSSアニメーションの開始タイミングを調整するために使われている。

スクリプトの冒頭では、document.querySelector()メソッドを使って、HTMLの中からd1d2d3d4というクラス名を持つ要素をそれぞれ選択し、変数に格納している。これは、JavaScriptが特定のHTML要素を操作するための一般的な方法だ。

そして、選択した各ドット要素に対して、.style.setProperty("--d", "値");という行が実行されている。.styleはJavaScriptから要素のCSSスタイルにアクセスするためのプロパティで、.setProperty()メソッドは、特定のCSSプロパティの値を設定するために使われる。ここでは、CSSカスタムプロパティである--dに対して、"0s""0.5s""1s""1.5s"という異なる遅延時間を文字列として設定している。

このJavaScriptのコードが実行されることで、d1はすぐにアニメーションを開始し、d2は0.5秒後、d3は1秒後、d4は1.5秒後にそれぞれアニメーションを開始する。これにより、各ドットが異なるタイミングで回転を始めるため、一列に並んだドットが波打つように、または螺旋状に回転しているかのような、連続的で魅力的なアニメーション効果が生まれる。

このように、このシンプルなデモは、HTMLで構造を作り、CSSで見た目とアニメーションの基本を定義し、そしてJavaScriptでCSSアニメーションのタイミングを細かく制御するという、Webフロントエンド開発における基本的な技術連携の形を明確に示している。システムエンジニアを目指す上では、それぞれの技術が何を担当し、どのように組み合わさって動的なWebページが構築されているのかを理解することが、第一歩となるだろう。このような小さなデモを自身で分析し、改造してみることで、各技術への理解を深めることができる。HTML、CSS、JavaScriptは互いに補完し合い、ユーザーに豊かな体験を提供するWebアプリケーション開発の基盤となっている。

関連コンテンツ