cari
Rumahhujung hadapan webtutorial cssMembina Simulasi Sistem Suria Interaktif: Panduan Langkah demi Langkah

Building an Interactive Solar System Simulation: A Step-by-Step Guide

Mencipta projek yang menarik secara visual dan interaktif ialah salah satu aspek yang paling bermanfaat dalam pembangunan bahagian hadapan. Hari ini, saya akan membawa anda melalui proses membina simulasi sistem suria interaktif animasi sepenuhnya, lengkap dengan objek cakerawala dinamik dan panel bermaklumat. Projek ini, dihoskan di https://codepen.io/HanGPIIIErr/pen/MWNNNEe, bukan sahaja menyeronokkan untuk dibina tetapi juga padat dengan logik JavaScript dan animasi CSS yang menarik.

Menjelang akhir devblog ini, anda akan mempunyai semua alatan dan inspirasi yang anda perlukan untuk mencipta alam semesta interaktif anda sendiri—atau malah menjadikan projek ini sebagai asas untuk menambah lebih banyak ciri.

Gambaran Keseluruhan Simulasi Sistem Suria

Projek ini menampilkan:

  • Animasi Dinamik: Planet mengorbit matahari, satelit mengelilingi planet dan komet melintasi kanvas dengan animasi bendalir.
  • Interaktiviti: Objek boleh klik (planet, satelit, asteroid) memaparkan panel maklumat dengan fakta tentang setiap badan angkasa.
  • Kawalan Responsif: Zum dan navigasi sistem menggunakan pintasan papan kekunci untuk pengalaman yang lancar.
  • Penjanaan Objek Dinamik: Komet, satelit dan asteroid dijana secara rawak, menjadikan simulasi terasa hidup.

Teknologi Digunakan

  • HTML: Untuk menstruktur sistem suria dan modal.
  • CSS: Untuk animasi, gaya planet dan UI anggun panel maklumat.
  • JavaScript: Untuk interaktiviti, penciptaan objek dinamik dan kawalan responsif.

Langkah 1: Membina Struktur HTML

Pangkalan sistem suria ialah satu set orbit sepusat yang berpusat di sekitar matahari yang bersinar. Setiap planet mempunyai orbitnya sendiri dan objek dinamik (satelit, komet dan asteroid) dilampirkan secara dinamik melalui JavaScript.

Berikut ialah struktur utama:

<div>



<p>Each planet has a data-info attribute containing its description. When clicked, this data populates the informational panel, which appears dynamically.</p>

<p>Step 2: Adding CSS Animations</p>

<p>CSS brings the planets and orbits to life. Each orbit rotates smoothly using the @keyframes rule. Here's how we created the animations:</p>

<p>Orbit Animation<br>
</p>

<pre class="brush:php;toolbar:false">.orbit {
  position: absolute;
  border: 1px dashed rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  animation: rotate infinite linear;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

Animasi Planet

.planet {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #4caf50; /* Earth color */
  border-radius: 50%;
  animation: planet-spin infinite linear;
}

@keyframes planet-spin {
  0% {
    transform: rotate(0deg) translateX(50px);
  }
  100% {
    transform: rotate(360deg) translateX(50px);
  }
}

Animasi ini mencipta ilusi planet yang beredar mengelilingi matahari. Saiz dan kelajuan orbit setiap planet ditakrifkan secara individu untuk mencerminkan ciri relatifnya.

Langkah 3: Menambah Interaktiviti dengan JavaScript

Penciptaan Objek Dinamik

Asteroid, satelit dan komet dijana secara dinamik. Begini cara kami mencipta asteroid:

function createAsteroid() {
  const asteroid = document.createElement('div');
  asteroid.classList.add('asteroid');
  asteroid.setAttribute('data-info', 'Asteroid: Rocky celestial object.');
  space.appendChild(asteroid);

  asteroid.addEventListener('click', () => {
    showInfo(asteroid.getAttribute('data-info'));
  });

  setTimeout(() => asteroid.remove(), 5000); // Remove after 5 seconds
}

Fungsi createAsteroid secara dinamik menambah asteroid baharu pada DOM, menetapkan sifatnya dan melampirkan pendengar klik untuk interaktiviti. Fungsi ini dipanggil secara berkala menggunakan setInterval.

Panel Maklumat

Apabila objek angkasa diklik, atribut data-infonya mengisi panel maklumat.

function showInfo(text) {
  infoText.textContent = text;
  infoPanel.style.display = 'block';
}

Panel muncul secara dinamik dan boleh diketepikan dengan butang "Tutup".

Langkah 4: Menambah Navigasi Papan Kekunci

Untuk menjadikan simulasi lebih menarik, saya menambah kawalan zum dan navigasi:

<div>



<p>Each planet has a data-info attribute containing its description. When clicked, this data populates the informational panel, which appears dynamically.</p>

<p>Step 2: Adding CSS Animations</p>

<p>CSS brings the planets and orbits to life. Each orbit rotates smoothly using the @keyframes rule. Here's how we created the animations:</p>

<p>Orbit Animation<br>
</p>

<pre class="brush:php;toolbar:false">.orbit {
  position: absolute;
  border: 1px dashed rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  animation: rotate infinite linear;
}

@keyframes rotate {
  100% {
    transform: rotate(360deg);
  }
}

Ini membolehkan pengguna meneroka sistem suria secara dinamik.

Cabaran dan Pengajaran

.planet {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #4caf50; /* Earth color */
  border-radius: 50%;
  animation: planet-spin infinite linear;
}

@keyframes planet-spin {
  0% {
    transform: rotate(0deg) translateX(50px);
  }
  100% {
    transform: rotate(360deg) translateX(50px);
  }
}

Cubalah Sendiri!

Lihat projek penuh di CodePen: https://codepen.io/HanGPIIIErr/pen/MWNNNEe

Jangan ragu untuk memotongnya dan menambah objek atau ciri angkasa anda sendiri. Ingin meniru lubang hitam atau menambah buruj? Kemungkinannya tidak berkesudahan!

Kesimpulan: Alam Semesta Kemungkinan

Simulasi sistem suria ini adalah gambaran kecil tentang perkara yang mungkin dengan HTML, CSS dan JavaScript. Sama ada anda seorang pemula atau pembangun yang berpengalaman, projek seperti ini merupakan cara yang hebat untuk melenturkan kreativiti anda sambil mengasah kemahiran anda.

Jika anda menyukai projek ini, ada lagi projek yang menanti anda! Selami Pertempuran Gladiators, di mana anda akan menemui pertempuran epik, permainan mini dan komuniti pemain dan pembangun yang berkembang maju.

? Teroka Lagi:

Tapak web: https://gladiatorsbattle.com/
X: https://x.com/GladiatorsBT
LinkedIn: https://www.linkedin.com/in/pierre-romain-lopez/
Perselisihan: https://discord.gg/YBNF7KjGwx
Terima kasih kerana membaca, dan selamat mengekod! ?

Atas ialah kandungan terperinci Membina Simulasi Sistem Suria Interaktif: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Pembaca Skrin Demystifying: Borang & Amalan Terbaik DiaksesPembaca Skrin Demystifying: Borang & Amalan Terbaik DiaksesMar 08, 2025 am 09:45 AM

Ini adalah jawatan ke -3 dalam siri kecil yang kami lakukan dalam kebolehcapaian bentuk. Jika anda terlepas jawatan kedua, lihat "Menguruskan Fokus Pengguna dengan: Fokus-Visible". Dalam

Buat borang hubungan JavaScript dengan rangka kerja pintarBuat borang hubungan JavaScript dengan rangka kerja pintarMar 07, 2025 am 11:33 AM

Tutorial ini menunjukkan mewujudkan bentuk JavaScript yang berpandangan profesional menggunakan rangka kerja pintar (nota: tidak lagi tersedia). Walaupun kerangka itu sendiri tidak tersedia, prinsip dan teknik tetap relevan untuk pembina bentuk lain.

Menambah bayang -bayang kotak ke blok dan elemen WordPressMenambah bayang -bayang kotak ke blok dan elemen WordPressMar 09, 2025 pm 12:53 PM

CSS box-shadow dan garis besar sifat mendapat tema.json Sokongan dalam WordPress 6.1. Let ' s melihat beberapa contoh bagaimana ia berfungsi dalam tema sebenar, dan pilihan apa yang kita perlu gunakan gaya ini ke blok dan elemen WordPress.

Buat editor teks sebaris dengan atribut yang boleh dipertikaikanBuat editor teks sebaris dengan atribut yang boleh dipertikaikanMar 02, 2025 am 09:03 AM

Membina editor teks sebaris tidak remeh. Proses ini bermula dengan membuat elemen sasaran yang boleh diedit, mengendalikan potensi pengecualian syntaxError di sepanjang jalan. Membuat editor anda Untuk membina editor ini, anda perlu mengubahsuai kandungan secara dinamik

Bekerja dengan Caching GraphqlBekerja dengan Caching GraphqlMar 19, 2025 am 09:36 AM

Sekiranya anda baru -baru ini mula bekerja dengan GraphQL, atau mengkaji semula kebaikan dan keburukannya, anda tidak akan ragu -ragu mendengar perkara seperti "Graphql tidak menyokong caching" atau

Menjadikan Peralihan Svelte Khas pertama andaMenjadikan Peralihan Svelte Khas pertama andaMar 15, 2025 am 11:08 AM

API Peralihan Svelte menyediakan cara untuk menghidupkan komponen apabila mereka memasuki atau meninggalkan dokumen, termasuk peralihan svelte adat.

Membandingkan 5 Pembina Borang PHP Terbaik (dan 3 skrip percuma)Membandingkan 5 Pembina Borang PHP Terbaik (dan 3 skrip percuma)Mar 04, 2025 am 10:22 AM

Artikel ini meneroka skrip pembina bentuk PHP teratas yang terdapat di Envato Market, membandingkan ciri -ciri, fleksibiliti, dan reka bentuk mereka. Sebelum menyelam ke dalam pilihan tertentu, mari kita faham apa pembina bentuk PHP dan mengapa anda menggunakannya. Borang PHP

Muat naik fail dengan multer di node.js dan ekspresMuat naik fail dengan multer di node.js dan ekspresMar 02, 2025 am 09:15 AM

Tutorial ini membimbing anda melalui membina sistem muat naik fail menggunakan Node.js, Express, dan Multer. Kami akan merangkumi muat naik fail tunggal dan berganda, dan juga menunjukkan menyimpan imej dalam pangkalan data MongoDB untuk mendapatkan semula kemudian. Pertama, sediakan Projek anda

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini