国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 css教程 netlify' s million devs svg動(dòng)畫網(wǎng)站的制作

netlify' s million devs svg動(dòng)畫網(wǎng)站的制作

Apr 03, 2025 am 11:01 AM

本文詳細(xì)介紹了Netlify的“百萬開發(fā)器”微型網(wǎng)站的創(chuàng)建,重點(diǎn)是動(dòng)畫過程。該網(wǎng)站使用大型SVG作為其基礎(chǔ),巧妙地將其分解為可管理的VUE組件,以便于管理和操縱。

:Netlify的Million Devs SVG動(dòng)畫網(wǎng)站的制作

在SVG中構(gòu)建VUE應(yīng)用程序

SVG充當(dāng)坐標(biāo)系(想想戰(zhàn)艦?。琗,Y,寬度和高度定義元素。主VUE應(yīng)用程序包含標(biāo)題和一個(gè)龐大的SVG。該SVG進(jìn)一步分解為較小的可重復(fù)使用的VUE組件:

  • 路徑:由Vuex狀態(tài)控制的桌面和移動(dòng)視圖的單獨(dú)組件。
  • 電臺(tái): 27個(gè)單個(gè)電臺(tái)組件(加上文本標(biāo)簽),以及一年來組織的裝飾元素(樹木,灌木叢等),以便更好地組織。
  • “您在這里”標(biāo)記:有條件地呈現(xiàn)桌面視圖和登錄用戶。

SVG的靈活性允許嵌套的SVG,定義每個(gè)孩子SVG的X,Y,寬度和高度,以精確地將其定位在父級內(nèi)。<g></g>元素(類似于HTML DIVS)組組件。一年組件示例:

<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>2020年5月27日</template>
      <template v-slot:event>jamstack conf虛擬</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>

注意組件的同步和異步加載,以進(jìn)行性能優(yōu)化。

使用GSAP和SCROLLTRIGGER的SVG動(dòng)畫

動(dòng)畫利用Greensock(GSAP)及其Scrolltrigger插件。核心動(dòng)畫邏輯:

從“ GSAP”導(dǎo)入{GSAP};
從“ gsap/scrolltrigger.js”導(dǎo)入{scrolltrigger};
從“ vuex”導(dǎo)入{mapState};

gsap.registerplugin(scrolltrigger);

導(dǎo)出默認(rèn){
  計(jì)算:{
    ... MapState([“ toggleconfig”,“ startConfig”,“ isanimationDisabled”,“ viewportsize”]),),),
  },,
  方法: {
    百萬anim(){
      令vm = this;
      令TL;
      const isscrollelConfig = {
        scrolltrigger:{
          觸發(fā)器:`。百萬$ {vm.num}`,
          toggleactions:this.toggleconfig,
          開始:this.startconfig,
        },,
        默認(rèn)值:{
          持續(xù)時(shí)間:1.5,
          輕松:“正弦”,
        },,
      };
      // ...動(dòng)畫邏輯...
    },,
  },,
  安裝(){
    this.millionanim();
  },,
};

Vuex管理toggleConfig (控制動(dòng)畫觸發(fā)器)和startConfig (定義動(dòng)畫起點(diǎn))。橫幅動(dòng)畫的處理方式與滾動(dòng)觸發(fā)的動(dòng)畫不同。時(shí)間表使用標(biāo)簽進(jìn)行精確的動(dòng)畫控制。揮舞腿動(dòng)畫的一個(gè)例子:

 tl.add(`百萬美元$ {vm.num}`)
  。從(
    “#前腿R”,
    {
      持續(xù)時(shí)間:0.5,
      旋轉(zhuǎn):10,
      變形金學(xué):“ 50%0%”,
      重復(fù):6,
      Yoyo:是的,
      輕松:“正弦”,
    },,
    `百萬$ {vm.num}`
  )
  。從(
    “#前腿l”,
    {
      持續(xù)時(shí)間:0.5,
      旋轉(zhuǎn):10,
      變形金學(xué):“ 50%0%”,
      重復(fù):6,
      Yoyo:是的,
      輕松:“正弦”,
    },,
    `百萬$ {vm.num} = 0.25`
  );

動(dòng)畫切換和可訪問性

VUEX控制的切換使用戶可以禁用動(dòng)畫。觀看isAnimationDisabled狀態(tài),并相應(yīng)地暫停或重置ScrollTrigger動(dòng)畫,而無需使用.kill()允許重新啟動(dòng)。

可訪問性考慮因素包括使用role="img"作為裝飾元素,以及用于交互式元素的唯一ID和標(biāo)題,以確保屏幕讀取器可以有效地導(dǎo)航該網(wǎng)站。文本組件示例顯示了如何使SVG文本可訪問:

<template>
  <a :href="http://miracleart.cn/link/8f7f2375ba3e2ee3adf67d0e32c683d5">
    </a>
      <title id="analyticsuklaunch">啟動(dòng)分析</title>
      <g>
        <text transform="translate(7.6 14)"><slot name="date">2016年7月13日</slot></text>
        <text transform="translate(16.5 48.7)"><slot name="event">這里的東西</slot></text>
        <text transform="translate(16.5 70)"><slot name="event2"></slot></text>
        <text transform="translate(164.5 104.3)">查看里程碑</text>
      </g>
    
  
</template>

該項(xiàng)目的GitHub存儲(chǔ)庫是開源的。作者承認(rèn)同事的貢獻(xiàn)。

以上是netlify&#039; s million devs svg動(dòng)畫網(wǎng)站的制作的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

如何僅在某些頁面上包括CSS? 如何僅在某些頁面上包括CSS? Jun 11, 2025 am 12:01 AM

選擇性包含CSS在特定頁面上的方法有三種:1.內(nèi)聯(lián)CSS,適用于不常訪問或需要獨(dú)特樣式的頁面;2.使用JavaScript條件加載外部CSS文件,適合需要靈活性的情況;3.服務(wù)器端包含,適用于使用服務(wù)器端語言的場景。這種方法可以優(yōu)化網(wǎng)站性能和可維護(hù)性,但需平衡模塊化與性能。

Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Flexbox與網(wǎng)格:了解CSS布局的關(guān)鍵差異 Jun 10, 2025 am 12:03 AM

flexboxisidealforone-dimensionAllayouts,while gridsuitStwo,complex layouts.useflexboxforaligningItemsinasingLeaxisAndGridForRidForPreciseconcontroloverroverroverroverroverroverroverrowsandsininintricatientricatedesigns。

使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 使用HTML彈出案創(chuàng)建自動(dòng)關(guān)閉通知 Jun 10, 2025 am 09:45 AM

HTML彈出屬性將元素轉(zhuǎn)換為頂層元素,可以使用按鈕或JavaScript打開和關(guān)閉??梢詫棾霭格g回多種方式,但是沒有選擇自動(dòng)關(guān)閉它們。 preethi有一種技術(shù),你可以

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會(huì)阻塞頁面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

如何在無花果中使用Lotties 如何在無花果中使用Lotties Jun 14, 2025 am 10:17 AM

在接下來的教程中,我將向您展示如何在無花果中創(chuàng)建Lottie動(dòng)畫。我們將使用兩種彩色設(shè)計(jì)來超越如何在無花果上進(jìn)行動(dòng)畫,然后向您展示如何從Figma到Lottie動(dòng)畫。您只需要免費(fèi)無花果

打破邊界:用(s)CSS構(gòu)建湯姆拼圖 打破邊界:用(s)CSS構(gòu)建湯姆拼圖 Jun 13, 2025 am 11:33 AM

我們對其進(jìn)行了測試,事實(shí)證明,至少在低級邏輯和拼圖行為時(shí),Sass可以替換JavaScript。除了地圖,混音,功能和大量數(shù)學(xué)外,我們都設(shè)法使我們的Tangram難題栩栩如生,沒有J

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

See all articles