Rumah hujung hadapan web tutorial css Pembuatan: Netlify ' s Million Devs SVG Site Animation

Pembuatan: Netlify ' s Million Devs SVG Site Animation

Apr 03, 2025 am 11:01 AM

Artikel ini memperincikan penciptaan mikrosit "Million Devs" Netlify, yang memberi tumpuan kepada proses animasi. Laman ini menggunakan SVG yang besar sebagai asasnya, dengan bijak dipecahkan ke dalam komponen VUE yang boleh diurus untuk pengurusan dan manipulasi yang lebih mudah.

Pembuatan: Laman Animasi Million Devs SVG Netlify's

Membina aplikasi Vue dalam SVG

SVG bertindak sebagai sistem koordinat (berfikir Battleship!), Dengan x, y, lebar, dan elemen yang menentukan ketinggian. Aplikasi VUE utama mengandungi tajuk dan SVG yang besar. SVG ini terus diburukkan lagi ke dalam komponen Vue yang lebih kecil dan boleh diguna semula:

  • Laluan: Komponen berasingan untuk pandangan desktop dan mudah alih, dikawal oleh VUEX State.
  • Stesen: 27 komponen stesen individu (plus label teks), bersama -sama dengan unsur -unsur hiasan (pokok, semak, dll.), Yang dianjurkan oleh tahun untuk organisasi yang lebih baik.
  • "Anda berada di sini" penanda: Secara kondisif untuk pandangan desktop dan pengguna log masuk.

Fleksibiliti SVG membolehkan SVG bersarang, menentukan x, y, lebar, dan ketinggian setiap anak SVG untuk meletakkannya dengan tepat di dalam ibu bapa.<g></g> Unsur -unsur (serupa dengan HTML Divs) komponen kumpulan. Contoh komponen setahun:

<template>
  <g>
    <app-tree x="650" y="5500"></app-tree>
    <app-tree x="700" y="5550"></app-tree>
    <app-bush x="750" y="5600"></app-bush>
    <app-virtual x="1200" xsmall="50" y="6000" ysmall="15100"></app-virtual>
    <app-text num="20" url-slug="jamstack-conf-virtual" x="1400" xsmall="50" y="6500" ysmall="15600">
      <template v-slot:date>27 Mei 2020</template>
      <template v-slot:event>Jamstack conf virtual</template>
    </app-text>
    …
  </g>
</template>

<script>
import {
  AppText,
  AppTree,
  AppBush,
  AppStreetlamp2,
} from "@/components";
export default {
  components: {
    AppText,
    AppTree,
    AppBush,
    AppStreetlamp2,
    AppBuildPlugins: () => import("@/components/AppBuildPlugins.vue"),
    AppMillion: () => import("@/components/AppMillion.vue"),
    AppVirtual: () => import("@/components/AppVirtual.vue"),
  },
};
</script>

Perhatikan pemuatan komponen segerak dan tidak segerak untuk pengoptimuman prestasi.

Animasi SVG dengan GSAP dan Scrolltrigger

Animasi Leverage Greensock (GSAP) dan plugin Scrolltriggernya. Logik Animasi Teras:

 import {GSAP} dari "GSAP";
import {scrolltrigger} dari "gsap/scrolltrigger.js";
import {MapState} dari "Vuex";

GSAP.RegisterPlugin (ScrollTrigger);

Eksport Lalai {
  dikira: {
    ... mapstate (["toggleconfig", "startconfig", "isanimationdisabled", "viewportSize"]),
  },
  Kaedah: {
    jilbilyanim () {
      biarkan vm = ini;
      Biarkan TL;
      const isscrollelconfig = {
        Scrolltrigger: {
          Pencetus: `.million $ {vm.num}`,
          toggleactions: this.toggleconfig,
          Mula: this.startconfig,
        },
        Lalai: {
          Tempoh: 1.5,
          kemudahan: "sine",
        },
      };
      // ... logik animasi ...
    },
  },
  dipasang () {
    this.millionanim ();
  },
};

VUEX menguruskan toggleConfig (mengawal pencetus animasi) dan startConfig (menentukan titik permulaan animasi). Animasi spanduk ditangani secara berbeza daripada animasi yang dicetuskan tatal. Timelines menggunakan label untuk kawalan animasi yang tepat. Contoh animasi kaki berayun:

 tl.add (`juta $ {vm.num}`)
  . dari (
    "#front-leg-r",
    {
      Tempoh: 0.5,
      putaran: 10,
      Transformorigin: "50% 0%",
      Ulang: 6,
      Yoyo: Benar,
      kemudahan: "sine.inout",
    },
    `juta $ {vm.num}`
  )
  . dari (
    "#Front-Leg-l",
    {
      Tempoh: 0.5,
      putaran: 10,
      Transformorigin: "50% 0%",
      Ulang: 6,
      Yoyo: Benar,
      kemudahan: "sine.inout",
    },
    `juta $ {vm.num} = 0.25`
  );

Animasi Togol dan Kebolehcapaian

Togol yang dikawal oleh VUEX membolehkan pengguna melumpuhkan animasi. Negeri isAnimationDisabled ditonton, dan animasi scrolltrigger dijeda atau ditetapkan semula dengan sewajarnya, tanpa menggunakan .kill() untuk membolehkan memulakan semula.

Pertimbangan kebolehcapaian termasuk menggunakan role="img" untuk unsur -unsur hiasan dan ID dan tajuk unik untuk elemen interaktif, memastikan pembaca skrin dapat menavigasi tapak dengan berkesan. Contoh komponen teks menunjukkan cara menjadikan teks SVG dapat diakses:

<template>
  <a :href="//m.sbmmt.com/link/8f7f2375ba3e2ee3adf67d0e32c683d5">
    </a>
      <title id="analyticsuklaunch">Pelancaran analisis</title>
      <g>
        <text transform="translate(7.6 14)"><slot name="date">13 Jul 2016</slot></text>
        <text transform="translate(16.5 48.7)"><slot name="event">Sesuatu di sini</slot></text>
        <text transform="translate(16.5 70)"><slot name="event2"></slot></text>
        <text transform="translate(164.5 104.3)">Lihat Milestone</text>
      </g>
    
  
</template>

Repositori GitHub projek adalah sumber terbuka. Penulis mengakui sumbangan rakan sekerja mereka.

Atas ialah kandungan terperinci Pembuatan: Netlify ' s Million Devs SVG Site Animation. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Rimworld Odyssey Cara Ikan
1 bulan yang lalu By Jack chen
Bolehkah saya mempunyai dua akaun Alipay?
1 bulan yang lalu By 下次还敢
Panduan pemula ' s ke Rimworld: Odyssey
1 bulan yang lalu By Jack chen
Skop pembolehubah PHP dijelaskan
3 minggu yang lalu By 百草

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1508
276
Apakah ketidakkonsistenan penyemak imbas CSS biasa? Apakah ketidakkonsistenan penyemak imbas CSS biasa? Jul 26, 2025 am 07:04 AM

Penyemak imbas yang berbeza mempunyai perbezaan dalam parsing CSS, mengakibatkan kesan paparan yang tidak konsisten, terutamanya termasuk perbezaan gaya lalai, kaedah pengiraan model kotak, flexbox dan tahap sokongan susun atur grid, dan tingkah laku yang tidak konsisten bagi atribut CSS tertentu. 1. Pemprosesan gaya lalai tidak konsisten. Penyelesaiannya adalah menggunakan cssreset atau normalisasi.css untuk menyatukan gaya awal; 2. Kaedah pengiraan model kotak versi lama IE adalah berbeza. Adalah disyorkan untuk menggunakan kotak-kotak: kotak sempadan dengan cara yang bersatu; 3. Flexbox dan grid melakukan secara berbeza dalam kes kelebihan atau dalam versi lama. Lebih banyak ujian dan gunakan autoprefixer; 4. Beberapa tingkah laku atribut CSS tidak konsisten. CANIUSE mesti dirujuk dan diturunkan.

Bagaimana untuk membuat imej responsif menggunakan CSS? Bagaimana untuk membuat imej responsif menggunakan CSS? Jul 15, 2025 am 01:10 AM

Untuk membuat imej responsif menggunakan CSS, ia boleh dicapai terutamanya melalui kaedah berikut: 1. Gunakan maksimum lebar: 100% dan ketinggian: auto untuk membolehkan imej menyesuaikan diri dengan lebar kontena sambil mengekalkan perkadaran; 2. Gunakan atribut SRCSET dan saiz HTML dengan bijak memuatkan sumber imej yang disesuaikan dengan skrin yang berbeza; 3. Gunakan objek-sesuai dan kedudukan objek untuk mengawal penanaman imej dan paparan fokus. Bersama -sama, kaedah ini memastikan bahawa imej dibentangkan dengan jelas dan indah pada peranti yang berbeza.

Huraikan harta benda `opacity` Huraikan harta benda `opacity` Jul 15, 2025 am 01:23 AM

Opacity adalah atribut dalam CSS yang mengawal ketelusan keseluruhan elemen, dengan nilai dari 0 (sepenuhnya telus) hingga 1 (sepenuhnya legap). 1. Ia sering digunakan untuk kesan memudar imej, dan meningkatkan pengalaman interaktif dengan menetapkan peralihan kelegapan; 2. Membuat lapisan topeng latar untuk meningkatkan kebolehbacaan teks; 3. Maklum balas visual butang kawalan atau ikon dalam keadaan kurang upaya. Perhatikan bahawa ia memberi kesan kepada semua elemen kanak -kanak, tidak seperti RGBA, yang hanya mempengaruhi bahagian warna yang ditentukan. Animasi yang lancar boleh dicapai dengan peralihan, tetapi penggunaan yang kerap boleh menjejaskan prestasi. Adalah disyorkan untuk menggunakannya dalam kombinasi dengan perubahan atau perubahan. Aplikasi rasional kelegapan dapat meningkatkan hierarki halaman dan interaktiviti, tetapi ia harus mengelakkan campur tangan dengan pengguna.

Apakah harta tanah aksen? Apakah harta tanah aksen? Jul 26, 2025 am 09:25 AM

Accent-color adalah atribut yang digunakan dalam CSS untuk menyesuaikan warna-warna sorot elemen bentuk seperti kotak pilihan, butang radio dan slider; 1. Ia secara langsung mengubah warna lalai keadaan yang dipilih dari kawalan borang, seperti menukar tanda semak biru kotak semak menjadi merah; 2. Unsur yang disokong termasuk kotak input Type = "Checkbox", Type = "Radio" dan Type = "Range"; 3. Menggunakan warna aksen boleh mengelakkan gaya tersuai kompleks dan struktur dom tambahan, dan mengekalkan kebolehcapaian asli; 4. Ia umumnya disokong oleh pelayar moden, dan pelayar lama perlu diturunkan; 5. Set Accent-Col

Huraikan `: mempunyai ()` pseudo-class (pemilih induk) Huraikan `: mempunyai ()` pseudo-class (pemilih induk) Jul 15, 2025 am 12:32 AM

The: mempunyai () pseudo-classincsallowstargetingingaparentelementbasedonitschildelements.itworksbyusingthesyntaxparent: mempunyai (kanak-kanak-selektor) toapplyStylesconditionally.forexample, div: mempunyai (img)

Bagaimanakah lembaran gaya lalai pelayar mempengaruhi rendering? Bagaimanakah lembaran gaya lalai pelayar mempengaruhi rendering? Jul 19, 2025 am 02:08 AM

Gaya lalai penyemak imbas memastikan kebolehbacaan asas dengan menggunakan margin, mengisi, fon, dan gaya elemen secara automatik, tetapi boleh menyebabkan susun atur silang penyemak imbas yang tidak konsisten. 1. Margin lalai dan mengisi perubahan aliran susun atur, seperti jarak tajuk, perenggan dan senarai; 2. Tetapan fon lalai mempengaruhi kebolehbacaan, seperti saiz fon 16px dan font masa times; 3. Unsur -unsur bentuk sangat berbeza dalam pelayar yang berbeza, jadi penampilan perlu ditetapkan semula; 4. Beberapa tag seperti Strong dan EM mempunyai gaya penekanan lalai dan perlu ditulis secara jelas. Penyelesaian termasuk menggunakan normalize.css, gaya tetapan semula, atau margin yang jelas dan mengisi global, sambil menyesuaikan fon dan bentuk bentuk untuk konsistensi.

Bagaimana cara menggayakan huruf pertama atau baris pertama perenggan? Bagaimana cara menggayakan huruf pertama atau baris pertama perenggan? Jul 19, 2025 am 02:58 AM

Untuk mencantikkan permulaan perenggan untuk meningkatkan daya tarikan visual, amalan biasa adalah menggunakan unsur-unsur pseudo CSS atau gaya secara manual dokumen. Dalam pembangunan web, p :: letter pertama boleh digunakan untuk menetapkan gaya huruf pertama, seperti membesarkan, membanting, dan membuang warna, tetapi harus diperhatikan bahawa ia hanya sesuai untuk unsur-unsur peringkat blok; Jika anda ingin menyerlahkan keseluruhan baris pertama, gunakan P :: Line pertama untuk menambah gaya; Dalam perisian dokumen seperti Word, anda boleh menyesuaikan format huruf pertama secara manual atau membuat templat gaya, dan InDesign mempunyai fungsi terbina dalam "sinking pertama" yang sesuai untuk penerbitan dan reka bentuk; Apabila memohon, anda perlu memberi perhatian kepada butiran, seperti mengelakkan gaya kompleks yang mempengaruhi membaca dan memastikan keserasian dan konsistensi format.

Bagaimana cara menonjolkan pemilihan gaya (`:: pemilihan`)? Bagaimana cara menonjolkan pemilihan gaya (`:: pemilihan`)? Jul 16, 2025 am 12:50 AM

Gunakan :: Pseudo-elemen CSS untuk menyesuaikan gaya penonjolan apabila teks laman web dipilih untuk meningkatkan estetika dan perpaduan halaman. 1. Tetapan Asas: Tentukan latar belakang warna dan warna melalui :: pemilihan, seperti latar belakang kuning dengan fon kelabu gelap; Unsur -unsur tertentu seperti P :: Pemilihan juga boleh dibatasi. 2. Pemprosesan Keserasian: Tambah -Webkit- awalan untuk bersesuaian dengan safari dan pelayar mudah alih, dan piawaian Firefox dan Edge disokong dengan baik. 3. Beri perhatian kepada kebolehbacaan: Elakkan kontras warna yang berlebihan atau terlalu mewah, dan harus diselaraskan dengan reka bentuk keseluruhan. Sebagai contoh, pilih asas biru lembut dalam mod gelap untuk meningkatkan keselesaan visual. Penggunaan yang munasabah dapat meningkatkan tekstur antara muka, mengabaikan perincian

See all articles