検索
ホームページウェブフロントエンドjsチュートリアルULTIMATE 教育 Web サイトを一から構築しました — 1 日目

1週間前、友人の一人、ノア・クレイジから、化学やその他の主題に関する知識を無料で共有できるウェブサイトを構築したいと相談を受けました。ノアはマンチェスター大学で一般化学と有機化学の博士号を取得しており、世界に対する前向きな模範となりたいと考えていました。彼は、広告なしで教育コンテンツを作成し、Web サイトに公開することにしました。

教育サイトを作成したいと常々思っていましたが、それを価値あるものにするための専門知識が不足していたので、これは私にとって素晴らしい機会でした。私は彼のアイデアが大好きで、彼が取り組んだ崇高な目的に有意義に貢献したかったので、すぐに無料で取り組み始めました。

当初、私は React をフレームワークとして使用することを検討しましたが、彼は基本的な Web サイトだけを望んでいたため、それは必要ないかもしれないとすぐに気づきました。私はシンプルなコンセプトと名前から始めました。これは ChatGPT から得た、Neuron IQ というぴったりの選択です。

フレームワークについては、基本的な HTML、CSS、JavaScript を使用することにしました。私はプロの開発者のように、これらのテクノロジーを使用してツールを作成しました。 React を使用することもできましたが、プレーンな HTML、CSS、JavaScript を使用することで、ルーターやその他の機能がどのように作成されるかを一から理解することができました。興味深いことに、私は Node.js も使用せず、プロジェクトを軽量かつ簡単に保ちました。

私が最も感謝したのは、彼がサイトのレイアウトとスタイルのデザインにおいて創造的な自由をたくさん与えてくれたことです。この機会を本当に大切に思いました。私はプロの UI/UX デザイナーではありませんが、デザインとタイポグラフィの基本を理解するのに十分な Web サイトを開発しました。そう、ダークテーマを選択したのは、発作を起こしたくなかったからです。

裏話はたくさんあるので、すぐに内容に入りましょう;

1時間目:

他の優れたプロジェクトと同様に、私たちは基本から始めました。 VS Code を起動し、!ショートカット、私の基本的な HTML ボイラープレートをすぐに生成しました:



    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document Title</title>
    <link rel="stylesheet" href="style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
    <script src="script.js" defer></script>





この定型文のカスタム修正バージョンがあり、style.css と script.js がすでに含まれているため、手動で追加する手間が省けます。

私はタイトルの設定から始めました。これは SEO とブラウザーのタブでサイトがどのように表示されるかにとって重要です。 ChatGPT の助けを借りて私が決めたタイトルは、「Neuron IQ - 高品質の教育ノートと回答」

でした。

次に、ヘッダーから始まるユーザー エクスペリエンスに焦点を当てました。明確でユーザーフレンドリーなナビゲーションは、優れたウェブサイトの鍵です。少なくとも、私はそう教えられてきました。

<header>
    <nav>
        <div>



<p>I used a custom boilerplate for the navigation, which automatically includes these elements. I quickly updated the addresses, except for the contact page, as we were still undecided about its content and structure. For now, I added links to the homepage, subjects page, and about page. Most of these are placeholders, except for the homepage, which is currently my main focus.</p>

<p>I wanted to create a striking visual section to immediately engage visitors, so I designed a hero section with a clear and impactful message:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>The </p>
<h1 id="tag-presents-a-strong-and-immediate-value-proposition-A"> tag presents a strong and immediate value proposition. A </h1>
<p> tag provides a concise explanation of what Neuron IQ offers. I included a button labeled "Explore Our Resources" to encourage user interaction and guide them to the next step.  </p>

<p>And, for the Hero, I specifically wanted to address the user concerns, specifically, why they should choose NeuronIQ and not something like study.com</p>

<h2>
  
  
  Hour 2
</h2>

<p>Time flies quickly, but I’ve made some progress on the site. Next, I focused on creating a visually appealing section for subjects. I initially stumbled a bit but eventually returned to basics, opting for a simple and functional layout that works:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>I chose a grid layout instead of a traditional list because it’s clean, standard, and allows users to quickly find the subjects they’re interested in. Plus, I was inspired by how platforms like Udemy organize their categories—it’s intuitive and visually engaging.  </p>

<p>Initially, I considered a more playful design:  </p>

<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173637563388852.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="I Built the ULTIMATE Educational Website from Scratch — Day 1">  </p>

<p>However, I realized the content Noah would be adding is advanced, and that design felt too simplistic—more suited for kids than for a serious educational platform. This led me to pivot to a more professional and mature look.  </p>

<p>And, spent about 45 minutes in this.</p>

<p>Then, I wanted to add a social proof, like a testimonial section. I quickly added it, took about 20 minutes more.<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<h2>
  
  
  Hour 3
</h2>

<p>Now, with basics done, I want a thing to present over there, a section showing the most recent resources:<br>
</p>

<pre class="brush:php;toolbar:false"> <section>



<p>Yeah, this section is intentionally basic—I didn’t want anything more from it. The content should speak for itself, not the design. Of course, I want the website to look modern and not like something from the '90s, but for now, I prefer a clean, simple design rather than going all-in on a flashy Web 3.0 aesthetic. That’s just my style at the moment.</p>

<p>After 2 hours and 40 minutes of work, we had almost everything done. I then added a call-to-action section and wrapped it up with a simple footer:<br>
</p>

<pre class="brush:php;toolbar:false"><footer>
    <p>© 2025 Neuron IQ. All rights reserved.</p>
    <ul>
        <li><a href="about.html">About Us</a></li>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">Privacy Policy</a></li>
        <li><a href="#">Terms of Use</a></li>
    </ul>
</footer>

フッターには、サイトにとって不可欠だと思われる重要なリンクがいくつか含まれています。

プロジェクト開始から 3 時間で、ページの基本的な HTML 構造が完成しました。次の手順では、ページのスタイルを設定し、スクリプト ファイルを追加して、コンテンツを設定します。

4 時間目: 基本のセットアップ

私はページの基本的なスタイルを設定することから始めました。私はいつもボディから始めて、全体的なルックアンドフィールを確立します。



    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document Title</title>
    <link rel="stylesheet" href="style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
    <script src="script.js" defer></script>





ここでは、フォントを「Poppins」に設定し、デフォルトのマージンとパディングを削除し、読みやすいように行の高さを調整し、テキストの色を明るいグレーに設定し、暗い背景を使用しました。私がダークテーマを選択したのは、誰も発作を起こさないようにするためと、特に学習と STEM に特化した Web サイトで見た目がクールだからです。

次に、ヘッダーのスタイルに進みました。優れたヘッダーは第一印象を左右する可能性があります。

<header>
    <nav>
        <div>



<p>I used a custom boilerplate for the navigation, which automatically includes these elements. I quickly updated the addresses, except for the contact page, as we were still undecided about its content and structure. For now, I added links to the homepage, subjects page, and about page. Most of these are placeholders, except for the homepage, which is currently my main focus.</p>

<p>I wanted to create a striking visual section to immediately engage visitors, so I designed a hero section with a clear and impactful message:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>The </p>
<h1 id="tag-presents-a-strong-and-immediate-value-proposition-A"> tag presents a strong and immediate value proposition. A </h1>
<p> tag provides a concise explanation of what Neuron IQ offers. I included a button labeled "Explore Our Resources" to encourage user interaction and guide them to the next step.  </p>

<p>And, for the Hero, I specifically wanted to address the user concerns, specifically, why they should choose NeuronIQ and not something like study.com</p>

<h2>
  
  
  Hour 2
</h2>

<p>Time flies quickly, but I’ve made some progress on the site. Next, I focused on creating a visually appealing section for subjects. I initially stumbled a bit but eventually returned to basics, opting for a simple and functional layout that works:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>I chose a grid layout instead of a traditional list because it’s clean, standard, and allows users to quickly find the subjects they’re interested in. Plus, I was inspired by how platforms like Udemy organize their categories—it’s intuitive and visually engaging.  </p>

<p>Initially, I considered a more playful design:  </p>

<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173637563388852.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="I Built the ULTIMATE Educational Website from Scratch — Day 1">  </p>

<p>However, I realized the content Noah would be adding is advanced, and that design felt too simplistic—more suited for kids than for a serious educational platform. This led me to pivot to a more professional and mature look.  </p>

<p>And, spent about 45 minutes in this.</p>

<p>Then, I wanted to add a social proof, like a testimonial section. I quickly added it, took about 20 minutes more.<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<h2>
  
  
  Hour 3
</h2>

<p>Now, with basics done, I want a thing to present over there, a section showing the most recent resources:<br>
</p>

<pre class="brush:php;toolbar:false"> <section>



<p>Yeah, this section is intentionally basic—I didn’t want anything more from it. The content should speak for itself, not the design. Of course, I want the website to look modern and not like something from the '90s, but for now, I prefer a clean, simple design rather than going all-in on a flashy Web 3.0 aesthetic. That’s just my style at the moment.</p>

<p>After 2 hours and 40 minutes of work, we had almost everything done. I then added a call-to-action section and wrapped it up with a simple footer:<br>
</p>

<pre class="brush:php;toolbar:false"><footer>
    <p>© 2025 Neuron IQ. All rights reserved.</p>
    <ul>
        <li><a href="about.html">About Us</a></li>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">Privacy Policy</a></li>
        <li><a href="#">Terms of Use</a></li>
    </ul>
</footer>

濃い灰色の背景、パディング、微妙な影を追加し、その位置をスティッキーに設定して、ユーザーがスクロールするときにナビゲーションバーが常に上部に表示されるようにしました。これにより、ナビゲーション バーがユーザーをフォローしているような、継続的なナビゲーション エクスペリエンスが提供されます。

次に、ナビゲーション バー自体のスタイルを設定しました。

body {
    font-family: 'Poppins', sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    color: #e0e0e0;
    background-color: #1a1a1a;
}

これは、フレックスボックスを使用して、ロゴを左側に、ナビゲーション リンクを右側に配置します。また、応答性とセンタリングのために max-width を追加し、大きな画面で伸びすぎないようにしました。

ロゴには、ブランドを認識できるように独自のフォントの色を使用しました。

header {
    background: #252525;
    padding: 1rem 0;
    box-shadow: 0 2px 4px rgba(255,255,255,0.1);
    position: sticky;
    top: 0;
    z-index: 100;
}

ナビゲーション リンク:

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

スタイルはスタンダードでクリーンですが、過度に複雑なデザインを使用するのではなく、常にシンプルさを目指しています。デフォルトのリストのスタイルを削除し、フレックスボックスを使用してリンクを水平に表示し、各リンク間にスペースを追加し、優れたホバー効果を追加しました。

サイト全体で一貫した間隔を保つために、セクションのスタイルを変更しました:

.logo {
    font-size: 1.8rem;
    font-weight: 600;
    color: #64b5f6;
}

これにより、すべてのセクションの最大幅、余白、テキストの配置が同じになります。

5 時間目: ヒーローセクションのスタイリング

ヒーローセクションに移りますが、注目を集める印象的なビジュアル要素が必要でした。

nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

nav ul li {
    margin-left: 20px;
}

nav ul li a {
    text-decoration: none;
    color: #e0e0e0;
    transition: color 0.3s;
}

nav ul li a:hover {
    color: #64b5f6;
}

背景に線形グラデーションを使用して奥行きとモダンな雰囲気を出し、間隔を広げるためにパディングを追加しました。

section {
    max-width: 1200px;
    margin: 40px auto;
    padding: 20px;
    text-align: center;
}

これにより、ヒーローのテキスト コンテンツが広がりすぎないようにスタイル設定され、水平方向の中央に配置され、ヒーロー セクションがロードされたときにスムーズなトランジション効果が得られます。

見出しと段落のスタイルはシンプルで標準的です:

.hero {
    background: linear-gradient(135deg, #2c3e50, #1a237e);
    padding: 80px 20px;
    color: #e0e0e0;
}

最後にボタン:

.hero-content {
    max-width: 700px;
    margin: 0 auto;
    opacity: 0; /* Start hidden */
    transform: translateY(20px); /* Slight move down */
    transition: opacity 0.8s ease, transform 0.8s ease; /* Added transition */
}
.hero.loaded .hero-content {
    opacity: 1;
    transform: translateY(0); /* Move to original postition */
}

.hero-content h1, .hero-content p{
    opacity:0;
    transform: translateY(-20px);
    transition: opacity 0.8s ease, transform 0.8s ease; /* Added transition */
}
.hero.loaded .hero-content h1, .hero.loaded .hero-content p{
        opacity: 1;
        transform: translateY(0); /* Move to original postition */
}
 .hero-content .btn{
    opacity:0;
    transform: translateY(20px);
        transition: opacity 0.8s ease, transform 0.8s ease; /* Added transition */
}
.hero.loaded .hero-content .btn{
    opacity: 1;
    transform: translateY(0); /* Move to original postition */
}

これにより、ボタンは視覚的に魅力的でインタラクティブになり、ホバーすると背景が変わります。

6 時間目: イントロダクション、カテゴリー、お客様の声のスタイリング

次に、イントロセクションのスタイルを設定する必要がありました。

.hero h1 {
    font-size: 2.5rem;
    margin-bottom: 15px;
}

.hero p {
    font-size: 1.2rem;
    margin-bottom: 25px;
}

これにより、グリッドを使用してイントロ セクションの応答性の高いグリッドが作成され、並べて配置され、各イントロ カードに微妙なフェードイン アニメーションが提供されます。

カテゴリセクションの場合:



    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document Title</title>
    <link rel="stylesheet" href="style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
    <script src="script.js" defer></script>





これにより、別の応答性の高いグリッドが作成され、微妙なフェードイン アニメーションを使用して主題が整理されて表示されます。フレックスボックスを使用して画像とテキストを配置し、パディングとスペース、ホバー効果を追加しました。

そして今度は紹介セクション、カルーセルです。

<header>
    <nav>
        <div>



<p>I used a custom boilerplate for the navigation, which automatically includes these elements. I quickly updated the addresses, except for the contact page, as we were still undecided about its content and structure. For now, I added links to the homepage, subjects page, and about page. Most of these are placeholders, except for the homepage, which is currently my main focus.</p>

<p>I wanted to create a striking visual section to immediately engage visitors, so I designed a hero section with a clear and impactful message:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>The </p>
<h1 id="tag-presents-a-strong-and-immediate-value-proposition-A"> tag presents a strong and immediate value proposition. A </h1>
<p> tag provides a concise explanation of what Neuron IQ offers. I included a button labeled "Explore Our Resources" to encourage user interaction and guide them to the next step.  </p>

<p>And, for the Hero, I specifically wanted to address the user concerns, specifically, why they should choose NeuronIQ and not something like study.com</p>

<h2>
  
  
  Hour 2
</h2>

<p>Time flies quickly, but I’ve made some progress on the site. Next, I focused on creating a visually appealing section for subjects. I initially stumbled a bit but eventually returned to basics, opting for a simple and functional layout that works:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>I chose a grid layout instead of a traditional list because it’s clean, standard, and allows users to quickly find the subjects they’re interested in. Plus, I was inspired by how platforms like Udemy organize their categories—it’s intuitive and visually engaging.  </p>

<p>Initially, I considered a more playful design:  </p>

<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173637563388852.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="I Built the ULTIMATE Educational Website from Scratch — Day 1">  </p>

<p>However, I realized the content Noah would be adding is advanced, and that design felt too simplistic—more suited for kids than for a serious educational platform. This led me to pivot to a more professional and mature look.  </p>

<p>And, spent about 45 minutes in this.</p>

<p>Then, I wanted to add a social proof, like a testimonial section. I quickly added it, took about 20 minutes more.<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<h2>
  
  
  Hour 3
</h2>

<p>Now, with basics done, I want a thing to present over there, a section showing the most recent resources:<br>
</p>

<pre class="brush:php;toolbar:false"> <section>



<p>Yeah, this section is intentionally basic—I didn’t want anything more from it. The content should speak for itself, not the design. Of course, I want the website to look modern and not like something from the '90s, but for now, I prefer a clean, simple design rather than going all-in on a flashy Web 3.0 aesthetic. That’s just my style at the moment.</p>

<p>After 2 hours and 40 minutes of work, we had almost everything done. I then added a call-to-action section and wrapped it up with a simple footer:<br>
</p>

<pre class="brush:php;toolbar:false"><footer>
    <p>© 2025 Neuron IQ. All rights reserved.</p>
    <ul>
        <li><a href="about.html">About Us</a></li>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">Privacy Policy</a></li>
        <li><a href="#">Terms of Use</a></li>
    </ul>
</footer>

これは、視覚的にアピールするトランジション効果とスケール効果を備えた、推薦カルーセルの標準 CSS です。

7 時間目: 最新のリソースと CTA のスタイリング

最新のリソース セクションのスタイルを設定します。

body {
    font-family: 'Poppins', sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    color: #e0e0e0;
    background-color: #1a1a1a;
}

ここでは、別のレスポンシブ グリッドを実装し、カードのスタイルを設定し、ホバー効果を追加し、フェードイン アニメーションを含めてこれらのカードに命を吹き込みました。

次に、行動喚起セクションの CTA:

header {
    background: #252525;
    padding: 1rem 0;
    box-shadow: 0 2px 4px rgba(255,255,255,0.1);
    position: sticky;
    top: 0;
    z-index: 100;
}

これは、ユーザーがサイトにさらに関与するためのシンプルで明確なセクションです。

8時間目: 最後の仕上げ

スタイルを完成させるために、フッターに焦点を当てました:

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

これにより、フッターのスタイルが設定され、リンクのリストが含まれ、ホバー効果が設定されます。

次に、メディア クエリを使用してレスポンシブ デザインを追加しました。

.logo {
    font-size: 1.8rem;
    font-weight: 600;
    color: #64b5f6;
}

これにより、ナビゲーションとグリッド レイアウトが調整され、サイトが小型のデバイスでも適切に表示されるようになります。

9 時間目: 件名とページのスタイリング

最後に、この Web サイトの目的はノアの知識を促進することであるため、件名とページについてのスタイルを追加し、それらをできるだけ最小限に抑えます。そのため、デザインは可能な限り最小限に抑えられています。

nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
}

nav ul li {
    margin-left: 20px;
}

nav ul li a {
    text-decoration: none;
    color: #e0e0e0;
    transition: color 0.3s;
}

nav ul li a:hover {
    color: #64b5f6;
}

これらのスタイルは同じテーマに従っており、特定のページ要素を反映するために小さな変更が加えられ、すべてのページで一貫した外観が作成されます。

これで Neuron IQ のスタイリングが完了しました。すべてを希望どおりに配置するのに約 6 時間かかりました。ここで、パズルの最後のピースである JavaScript に取り掛かります。

JS に移行する前に、現在の Web サイトの外観を確認してみましょう:

I Built the ULTIMATE Educational Website from Scratch — Day 1
または、ライブプレビューを見たい場合は、ここにあります: NeuronIQ

この部分は、正直に言うと、私の忍耐力を少し試しました。つまり、簡単にいかないことは分かっていましたが、それでも…

10 時間目: アニメーションとスクロール効果から始める

私はウェブサイトを単なる静的なページではなく、生きていると感じさせることを目標として始めました。まず、ヒーロー セクションのアニメーションを設定しました。

section {
    max-width: 1200px;
    margin: 40px auto;
    padding: 20px;
    text-align: center;
}

これは簡単です。DOM が完全にロードされたら、ヒーロー セクションのアニメーションをトリガーするクラスを追加すると、計画どおりにスムーズにアニメーション化されます。

次に、セクションがビューポートにスクロールするときにアニメーションを追加することを目指しました。このために、IntersectionObserver API を使用しました。この部分は少し難しかったです。



    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document Title</title>
    <link rel="stylesheet" href="style.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
    <script src="script.js" defer></script>





このコードは、.intro-grid div 要素のオブザーバーを設定します。オブザーバーがビューに表示されると、フェードイン クラスを追加してアニメーションをトリガーし、オブザーバーは不要になったので削除します。

カテゴリセクションでも同じことを行いました:

<header>
    <nav>
        <div>



<p>I used a custom boilerplate for the navigation, which automatically includes these elements. I quickly updated the addresses, except for the contact page, as we were still undecided about its content and structure. For now, I added links to the homepage, subjects page, and about page. Most of these are placeholders, except for the homepage, which is currently my main focus.</p>

<p>I wanted to create a striking visual section to immediately engage visitors, so I designed a hero section with a clear and impactful message:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>The </p>
<h1 id="tag-presents-a-strong-and-immediate-value-proposition-A"> tag presents a strong and immediate value proposition. A </h1>
<p> tag provides a concise explanation of what Neuron IQ offers. I included a button labeled "Explore Our Resources" to encourage user interaction and guide them to the next step.  </p>

<p>And, for the Hero, I specifically wanted to address the user concerns, specifically, why they should choose NeuronIQ and not something like study.com</p>

<h2>
  
  
  Hour 2
</h2>

<p>Time flies quickly, but I’ve made some progress on the site. Next, I focused on creating a visually appealing section for subjects. I initially stumbled a bit but eventually returned to basics, opting for a simple and functional layout that works:<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<p>I chose a grid layout instead of a traditional list because it’s clean, standard, and allows users to quickly find the subjects they’re interested in. Plus, I was inspired by how platforms like Udemy organize their categories—it’s intuitive and visually engaging.  </p>

<p>Initially, I considered a more playful design:  </p>

<p><img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173637563388852.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="I Built the ULTIMATE Educational Website from Scratch — Day 1">  </p>

<p>However, I realized the content Noah would be adding is advanced, and that design felt too simplistic—more suited for kids than for a serious educational platform. This led me to pivot to a more professional and mature look.  </p>

<p>And, spent about 45 minutes in this.</p>

<p>Then, I wanted to add a social proof, like a testimonial section. I quickly added it, took about 20 minutes more.<br>
</p>

<pre class="brush:php;toolbar:false"><section>



<h2>
  
  
  Hour 3
</h2>

<p>Now, with basics done, I want a thing to present over there, a section showing the most recent resources:<br>
</p>

<pre class="brush:php;toolbar:false"> <section>



<p>Yeah, this section is intentionally basic—I didn’t want anything more from it. The content should speak for itself, not the design. Of course, I want the website to look modern and not like something from the '90s, but for now, I prefer a clean, simple design rather than going all-in on a flashy Web 3.0 aesthetic. That’s just my style at the moment.</p>

<p>After 2 hours and 40 minutes of work, we had almost everything done. I then added a call-to-action section and wrapped it up with a simple footer:<br>
</p>

<pre class="brush:php;toolbar:false"><footer>
    <p>© 2025 Neuron IQ. All rights reserved.</p>
    <ul>
        <li><a href="about.html">About Us</a></li>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">Privacy Policy</a></li>
        <li><a href="#">Terms of Use</a></li>
    </ul>
</footer>

カテゴリーセクションにも同じ構造を使用し、非常に基本的な遅延を追加しました。まだ多くの改良が必要でした。

11 時間目: お客様の声スライダー

次に、紹介カルーセルの実装に移りました。

body {
    font-family: 'Poppins', sans-serif;
    margin: 0;
    padding: 0;
    line-height: 1.6;
    color: #e0e0e0;
    background-color: #1a1a1a;
}

これはスライダーのかなり標準的なセットアップです。スライダーを更新し、動きを制御し、スライド間に 5 秒の遅延を設けて自動スライドを設定する機能を追加しました。

最後に、最新のリソースセクションにスクロール効果を実装しました。

header {
    background: #252525;
    padding: 1rem 0;
    box-shadow: 0 2px 4px rgba(255,255,255,0.1);
    position: sticky;
    top: 0;
    z-index: 100;
}

私は以前と同様の構造に従い、これらのカードにフェードイン クラスを観察して追加し、観察を解除しました。

12 時間目と 13 時間目: 不満とデバッグ

ここで問題が発生しました。テスト後、スクロール アニメーションが一貫して動作していないことがわかりました。アニメーションのトリガーが早すぎる場合もあれば、まったくトリガーされない場合もあれば、ページ上でちらつくだけの場合もあります。めちゃくちゃでした

私は次の 2 時間をかけてコードを徹底的に調べ、しきい値のさまざまな値を試したり、アニメーションをトリガーするさまざまな方法を試したりしました。何をしてもセクションがランダムにアニメーションし続けるため、イライラしていました。

最初は、しきい値が低すぎるため、しきい値が正しく設定されておらず、ユーザーがスクロールしていなくても要素がオブザーバーに表示されてしまうのではないかと思いました。したがって、すべての要素に対して 0.2 のしきい値が適切であると考えました。まあ、どうやら違うようです。一部の要素には別の番号が必要です。

私はすべてのステップをログに記録し、ブラウザの開発者コンソールを検査し、遭遇した可能性のあるすべてのエラー メッセージを Google で検索しました (この間、Stack Overflow が私の親友になりました)。結局、複数の要素に対して各オブザーバーを 1 つのしきい値だけで設定していましたが、一部の要素ではそれが機能しませんでした。そのため、ちらついたり、ランダムにアニメーションしたり、まったくアニメーションしなかったりすることがあります。

私のアプローチは明らかに間違っていたので、修正する必要がありました。結局、この混乱のデバッグに約 2 時間を費やしました。最終的に、特定のターゲットしきい値を取得するためにオブザーバーを書き直しました。変更後、ようやくアニメーションが期待通りに動作するようになりました。

適切なしきい値を受け取るために各 handleIntersection 関数を変更する必要がありましたが、これで問題は修正されました。

3 時間の JavaScript コーディングと 2 時間のデバッグを経て、ついにこのプロジェクトのコーディングが完了しました。

以上がULTIMATE 教育 Web サイトを一から構築しました — 1 日目の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

pythonまたはjavascriptの方がいいですか?pythonまたはjavascriptの方がいいですか?Apr 06, 2025 am 12:14 AM

Pythonはデータサイエンスや機械学習により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、簡潔な構文とリッチライブラリエコシステムで知られており、データ分析とWeb開発に適しています。 2。JavaScriptは、フロントエンド開発の中核です。 node.jsはサーバー側のプログラミングをサポートしており、フルスタック開発に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)