国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Lottie--前端動畫效果--UI輸出json格式--lottie動畫在JavaScript中使用

這篇具有很好參考價值的文章主要介紹了Lottie--前端動畫效果--UI輸出json格式--lottie動畫在JavaScript中使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Lottie一個適用于Web、Android、iOS、React Native和Window的移動庫,它可以使用Bodymovin解析以json格式導(dǎo)出的Adobe After Effects動畫,并再移動設(shè)備上進(jìn)行本地渲染。

1.需要引入JavaScript文件,我使用的是cdn中的鏈接。這里直接上鏈接,按需取用。點這里
2.json格式的文件

我不是UI啊,我也不知道怎么做出來的,我只知道使用AE做的動畫再通過bodymovin導(dǎo)出的。到我手里就是兩個文件:一個.html文件和一個.json文件。

html后綴的文件可以直接使用,但是對于項目來說會存在冗余,所以我是用的json后綴文件。

3.引入json文件

在HTML里引入json文件我是這樣做的:
1.需要給json文件聲明變量接收
拿到的json文件:{" ":" "," ":" "}
處理后json文件:var one={" ":" "," ":" "}
(文件太長了,復(fù)制過來占地方,就這樣看吧,也不影響[狗頭])

備注:這里直接修改json文件會使文件出現(xiàn)小紅叉,雖然不影響靜態(tài)頁面的顯示,但為了更專業(yè),這里可以把文件修改為js文件。
方法:將json文件修改為js文件,處理文件部分改為:window.one={" ":" "," ":" "},正常引入js文件即可,除了文件格式不一樣,其他都是一樣的,不需要做修改。

2.在文件中使用<script></script>標(biāo)簽引入js文件或者json文件

4.使用lottie

接下來就是本篇文的主角–lottie

<body>
	<div id="lottie"></div>
	
	<!--引入lottie的js文件地址-->
	<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.9.1/lottie.min.js"></script>
	<!--引入的js格式文件-->
	<script type="text/javascript" src="js/json/animation.js"></script>
	<script type="text/javascript">
		//使用lottie
		const anim = lottie.loadAnimation({
			container: document.getElementById('lottie'),
			renderer: 'svg',//渲染方式:svg:支持交互、不會失幀;canvas、html:支持3D,支持交互
			loop: false,//循環(huán)播放:默認(rèn)為true
			autoplay: false,//自動播放:默認(rèn)為true
			//assetsPath:'images/',//圖片文件夾的路徑(這里可以設(shè)置圖片地址,如果設(shè)置了最終是在這個路徑下找圖片)
			animationData: one //變量名(還記得上面聲明變量接收的json文件或者js文件吧,跟那個接收的名字要一樣)
		})

		//然后就是把這段代碼放在你想要運行的時候,比如想要在加載之后就執(zhí)行,那就放在以下代碼里
		window.onload=function(){anim.play()}
	</script>
</body>
5.常用方法

anim.play():播放,從當(dāng)前幀開始播放
anim.stop():停止,并回到第0幀
anim.pause():暫停,并保持當(dāng)前幀
anim.goToAndStop(value,isFrame):跳到某個時刻/幀并停止
anim.goToAndPaly(value,isFrame):跳到某個時刻/幀并播放

//isFrame:指明value的單位是毫秒(false 默認(rèn)的)還是幀(true),可以省略。
animation.goToAndStop(30, true)     // 跳轉(zhuǎn)到第30幀并停止
animation.goToAndPlay(300)          // 跳轉(zhuǎn)到第300毫秒并播放

anim.playSegments(arr,forceFlag):以幀為單位,播放指定片段

//arr:可以包含兩個數(shù)字或者兩個數(shù)字組成的數(shù)組
//forceFlag:表示是否立即強(qiáng)制播放該片段
animation.playSegments([10,20], false)          // 播放完之前的片段,播放10-20幀
animation.playSegments([[0,5],[10,18]], true)   // 直接播放0-5幀和10-18幀

anim.setSpeed(speed):設(shè)置播放速度,speed為1表示正常速度
anim.setDirection(direction):設(shè)置播放方向,1表示正向播放,-1表示反向播放
anim.destroy():刪除該動畫,移除相應(yīng)的元素標(biāo)簽等

6.常用事件
//監(jiān)聽方法 給需要的動畫添加監(jiān)聽
//加載完動畫json文件時的data_ready事件
anim.addEventListener('data_ready', () => { console.log('animation data has loaded'); })

//播放完成(循環(huán)播放下不會觸發(fā))
anim.addEventListener('complete', () => {});

//當(dāng)前循環(huán)下播放(循環(huán)播放/非循環(huán)播放)結(jié)束時觸發(fā)
anim.addEventListener('loopComplete', () => {});

//每進(jìn)入一幀就會觸發(fā),播放時每一幀都會觸發(fā)一次,stop方法也會觸發(fā)
anim.addEventListener('enterFrame', () => {});

//播放指定片段時觸發(fā),playSegments、resetSegments等方法剛開始播放指定片段時會觸發(fā),如果playSegments播放多個片段,多個片段最開始都會觸發(fā)
anim.addEventListener('segmentStart', () => {});

//將在動畫刪除時觸發(fā)
anim.addEventListener('destroy', () => {});
7.部分高階用法(來源網(wǎng)絡(luò))

在制作AE動畫時,將圖層命名為#svgId格式,前端加載該動畫后,相應(yīng)的圖層的id會被設(shè)置為svgId,可以通過dom?法獲取該元素并做相應(yīng)的操作;

在制作AE動畫時,將圖層命名為.svgClass格式,前端加載該動畫后,相應(yīng)的圖層的class會被設(shè)置為svgClass,可以通過dom?法獲取這些元素并做相應(yīng)的操作;

8.補(bǔ)充對json文件的解析

注:來源于網(wǎng)絡(luò)的圖片,見水印
動畫總的運行時間=(結(jié)束關(guān)鍵幀-起始關(guān)鍵幀)/幀率
Lottie--前端動畫效果--UI輸出json格式--lottie動畫在JavaScript中使用文章來源地址http://www.zghlxwxcb.cn/news/detail-408498.html

到了這里,關(guān)于Lottie--前端動畫效果--UI輸出json格式--lottie動畫在JavaScript中使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Android 動畫 Lottie 如何使用

    Android 動畫 Lottie 如何使用

    一、簡介 Lottie 是Airbnb開源的一個面向 iOS、Android、React Native 的動畫庫,能分析 Adobe After Effects 導(dǎo)出的動畫,并且能讓原生 App 像使用靜態(tài)素材一樣使用這些動畫,完美實現(xiàn)動畫效果。 1.讓設(shè)計師使用Adobe 的 After Effects(簡稱 AE)工具(美工一般都會這個)制作這個動畫。 2.在AE中安

    2024年04月26日
    瀏覽(16)
  • Lottie動畫的優(yōu)劣及原理

    Lottie動畫的優(yōu)劣及原理

    Lottie是目前應(yīng)用十分廣泛的動畫框架。在周會匯報的時候,老板問能不能對Lottie進(jìn)行優(yōu)化,于是就有了下文對Lottie原理的研究。畢竟要進(jìn)行優(yōu)化,首先要深入了解原理嘛。 Lottie通過讀取json文件信息實現(xiàn)動畫效果。 json信息包括json整體結(jié)構(gòu)、圖片資源、圖層信息等,這些屬性

    2024年02月05日
    瀏覽(19)
  • Android Lottie加載gson文件動畫

    Android Lottie加載gson文件動畫

    一:Lottie的使用 在你工程的build.gradle文件里添加如下配置 二:布局文件直接引入LottieAnimationView 例如:文件放置目錄 如此,動畫就能跑起來了: 1.lottie_fileName:在app/src/main/assets目錄下的動畫json文件名。 2.lottie_loop:動畫是否循環(huán)播放,默認(rèn)不循環(huán)播放。 3.lottie_autoPlay:動畫

    2024年02月11日
    瀏覽(24)
  • android studio啟動頁面動畫Lottie

    android studio啟動頁面動畫Lottie

    1.在build.gradle(app)中加入依賴 implementation\\\'com.airbnb.android:lottie:3.7.0\\\' ?2.在Java包下新建活動 ?3.在res下創(chuàng)建raw包 ?

    2023年04月08日
    瀏覽(20)
  • vue3+vite中使用Lottie動畫

    vue3+vite中使用Lottie動畫

    Lottie通過讀取json文件信息實現(xiàn)動畫效果 ? 官方文檔?Lottie官網(wǎng) lottie庫有眾多動畫 選擇下載Lottie?JSON到項目中 安裝Lottie包 pnpm add lottie-web 模板創(chuàng)建 ?引入lottie-web以及動畫json文件 import lottie from \\\'lottie-web\\\'; import transformJson from \\\"@/assets/json/playLottie.json\\\" js ? 動畫生成?。?!?

    2024年02月07日
    瀏覽(23)
  • 微信小程序使用lottie動圖插件

    微信小程序使用lottie動圖插件

    1、通過npm安裝Lottie庫 npm install --save lottie-miniprogram 2、npm?構(gòu)建 1)npm init 2)微信開發(fā)者工具中?點擊? 工具一構(gòu)建npm 3、js文件里引用 4、wxml文件使用canvas 5、js方法調(diào)用 ? ? ?注:json路徑為小程序合法域名下服務(wù)器上的文件,可將文件夾整體扔到服務(wù)器上 6、效果展示

    2024年02月04日
    瀏覽(21)
  • Python(21)json.dumps()使用indent參數(shù) 格式化輸出json數(shù)據(jù)格式

    json.dumps() 方法 將一個Python數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為JSON字符串 輸出為 這樣的格式一般都不優(yōu)美,當(dāng)數(shù)據(jù)很多的時候,看得就不是很直觀方便。 可以使用 indent=4 參數(shù)來對json進(jìn)行數(shù)據(jù)格式化輸出,會根據(jù)數(shù)據(jù)格式縮進(jìn)顯示,讀起來更加清晰 用法如下 輸出為 json.dumps()方法,參數(shù)解釋

    2024年02月08日
    瀏覽(25)
  • Python 中的 JSON 模塊詳解及 JSON 數(shù)組的輸出格式示例

    正文: 在 Python 中,JSON(JavaScript Object Notation)是一種常用的數(shù)據(jù)交換格式。Python 提供了一個內(nèi)置模塊 json 來處理 JSON 數(shù)據(jù)。本文將詳細(xì)介紹 Python 中的 json 模塊,包括 JSON 對象的序列化和反序列化,以及如何處理 JSON 數(shù)組。 1. 導(dǎo)入 json 模塊 在使用 json 模塊之前,我們需要

    2024年02月07日
    瀏覽(49)
  • 前端開發(fā)攻略---Vue通過自定義指令實現(xiàn)元素平滑上升的動畫效果(可以自定義動畫時間、動畫效果、動畫速度等等)。

    前端開發(fā)攻略---Vue通過自定義指令實現(xiàn)元素平滑上升的動畫效果(可以自定義動畫時間、動畫效果、動畫速度等等)。

    這個指令不是原生自帶的,需要手動去書寫,但是這輩子只需要編寫這一次就好了,后邊可以反復(fù)利用。 IntersectionObserver 是一個用于監(jiān)測元素是否進(jìn)入或離開視口(viewport)的 API。它可以幫助你在頁面滾動時或者元素位置改變時進(jìn)行回調(diào)操作,這樣你就可以根據(jù)元素是否可見

    2024年04月11日
    瀏覽(24)
  • 這里推薦幾個前端動畫效果網(wǎng)站

    這里推薦幾個前端動畫效果網(wǎng)站

    1. AnimistaAnimista 是一個 CSS 動畫/轉(zhuǎn)場庫和在線工具。它有許多現(xiàn)成的 CSS 動畫片段可以直接使用,也可以在線定制動畫。 網(wǎng)站地址:Animista - On-Demand CSS Animations Library ? 2. Animate.cssAnimate.css 是一個免費的 CSS 動畫庫,里面有 Attention Seekers 、 Bouncing Entrances 、 Fading Entrances、Rotating En

    2024年02月13日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包