欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

uniapp中使用lottie實(shí)現(xiàn)JSON動(dòng)畫的操作步驟

 更新時(shí)間:2025年01月08日 08:33:12   作者:何嘉煙  
這篇文章主要介紹了如何在項(xiàng)目中使用JSON動(dòng)畫組件,包括創(chuàng)建目錄結(jié)構(gòu)、下載JSON文件、編寫自定義組件代碼以及組件的使用方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、引入相關(guān)依賴

npm install lottie-web
# 如果有問(wèn)題可以和我保持一致:npm install lottie-web@5.12.2

二、在項(xiàng)目的目錄新建目錄結(jié)構(gòu)

  • 存放資源的目錄,用于存放JSON動(dòng)畫:/static/svgJson/*
  • 用于存放動(dòng)畫組件的目錄:/components/SvgAnimation/*

三、操作步驟

在一些素材網(wǎng)站上下載我們需要的JSON素材,或者直接找UI給你

比如我們熟知的iconfon

下載后我們會(huì)得到一個(gè).json的文件,我們把它放在資源目錄下,比如:/static/svgJson/start.json

在存放動(dòng)畫組件中新增一個(gè)自定義組件,就比如:/components/SvgAnimation/start.vue

四、編寫自定義組件代碼

模板代碼如下:

<template>
  <view class="container-start">
    <view id="start"></view>
  </view>
</template>

<script module="renderScript" lang="renderjs">
import lottie from 'lottie-web'
import start from "../../static/svgJson/start.json";
export default {
    mounted() {
        this.ready()
    },
    methods: {
        ready() {
            lottie.loadAnimation({
                container: document.getElementById("start"),
                renderer: 'svg',
                loop: true,
                autoplay: true, 
                animationData: start 
            }); 
        }
    }
};
</script>

<style>
/* 這里可以自己定義相關(guān)的樣式,這里只是做個(gè)示范,具體按照界面而定 */
.container-start {
  width: 50%;
}
#start {
  width: 100%;
}
</style>

須知:代碼中的start可以替換成自己保存的JSON文件

打個(gè)比方就是:我下載了一個(gè)名字叫end.json文件,我就在/components/SvgAnimation目錄下新增一個(gè)end.vue

然后使用快捷鍵ctrl+h,然后將模板中的start單詞全部替換成end即可!

五、組件的使用

在頁(yè)面中引入組件直接使用即可:

import More from "../../components/SvgAnimation/more.vue"

# 在界面中使用:
<More></More>

提一嘴

由于比較懶,而且項(xiàng)目中使用的也不是太多,所以并沒有進(jìn)行封裝。

一方面由于使用了renderjs,封裝起來(lái)也不是一件短時(shí)間就能完成的事情,涉及到uniapp的視圖層和邏輯層的數(shù)據(jù)交互,更多的是沒有機(jī)會(huì)去深入研究。

另一方面也就是拿著模板代碼直接替換一個(gè)名稱也就是一會(huì)的事情。

如果有大佬有封裝的代碼那更好不過(guò)了!

更多

lottie-web常用方法

animation.play(); // 播放該動(dòng)畫,從目前停止的幀開始播放

animation.stop(); // 停止播放該動(dòng)畫,回到第0幀

animation.pause(); // 暫停該動(dòng)畫,在當(dāng)前幀停止并保持

animation.goToAndStop(value, isFrame); // 跳到某個(gè)時(shí)刻/幀并停止。isFrame(默認(rèn)false)指示value表示幀還是時(shí)間(毫秒)

animation.goToAndPlay(value, isFrame); // 跳到某個(gè)時(shí)刻/幀并進(jìn)行播放

animation.goToAndStop(30, true); // 跳轉(zhuǎn)到第30幀并停止

animation.goToAndPlay(300); // 跳轉(zhuǎn)到第300毫秒并播放

animation.playSegments(arr, forceFlag); // arr可以包含兩個(gè)數(shù)字或者兩個(gè)數(shù)字組成的數(shù)組,forceFlag表示是否立即強(qiáng)制播放該片段

animation.playSegments([10,20], false); // 播放完之前的片段,播放10-20幀

animation.playSegments([[0,5],[10,18]], true); // 直接播放0-5幀和10-18幀

animation.setSpeed(speed); // 設(shè)置播放速度,speed為1表示正常速度

animation.setDirection(direction); // 設(shè)置播放方向,1表示正向播放,-1表示反向播放

animation.destroy(); // 刪除該動(dòng)畫,移除相應(yīng)的元素標(biāo)簽等。在unmount的時(shí)候,需要調(diào)用該方法

添加點(diǎn)擊事件

<template>
  <view class="container">
    <view id="home"></view>
  </view>
</template>

<script module="renderScript" lang="renderjs">
import lottie from 'lottie-web'
import home from "../../static/svgJson/home.json";
export default {
    data(){
        return {
            animation: null
        }
    },
    mounted() {
        this.ready()
        this.addClickEvent()
    },
    methods: {
        ready() {
            this.animation = lottie.loadAnimation({
                container: document.getElementById("home"),
                renderer: 'svg',
                loop: false, //是否循環(huán)播放
                autoplay: true, //是否自動(dòng)播放
                animationData: home // 加載json的文件名
            }); // 加載
            this.animation.goToAndStop(55,true)
        },
        addClickEvent(){
            document.getElementById("home").addEventListener("click",()=>{
                this.animation.playSegments([10,65],true)
            })
        }
    },
    beforeDestroy() {
        document.getElementById("home").removeEventListener("click",()=>{})
    }
};
</script>

界面中給組件添加點(diǎn)擊事件:

<Home @click.native="clickSvg"></Home>

結(jié)尾:更多的操作由各位去發(fā)掘吧

總結(jié)

到此這篇關(guān)于uniapp中使用lottie實(shí)現(xiàn)JSON動(dòng)畫的文章就介紹到這了,更多相關(guān)uniapp用lottie實(shí)現(xiàn)JSON動(dòng)畫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue使用MD5對(duì)前后端進(jìn)行加密的實(shí)現(xiàn)

    Vue使用MD5對(duì)前后端進(jìn)行加密的實(shí)現(xiàn)

    前后端分離的項(xiàng)目,遇到了對(duì)密碼進(jìn)行加密的情況,在前端或者是在后端加密都是可以的,本文主要介紹了Vue使用MD5對(duì)前后端進(jìn)行加密的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 詳解vue axios中文文檔

    詳解vue axios中文文檔

    本篇文章主要介紹了詳解axios中文文檔,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前行變色

    Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前行變色

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)點(diǎn)擊當(dāng)前行變色,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 詳解在vue中如何使用node.js

    詳解在vue中如何使用node.js

    這篇文章主要給大家介紹了關(guān)于在vue中如何使用node.js的相關(guān)資料,vue和nodejs經(jīng)常讓新手們感到困惑,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • vue項(xiàng)目實(shí)現(xiàn)國(guó)際化的基本思路與詳細(xì)步驟

    vue項(xiàng)目實(shí)現(xiàn)國(guó)際化的基本思路與詳細(xì)步驟

    國(guó)際化是指項(xiàng)目能夠根據(jù)不同國(guó)家的語(yǔ)言進(jìn)行轉(zhuǎn)換,便于不同國(guó)家的用戶使用,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)國(guó)際化的基本思路與詳細(xì)步驟,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • vue 在methods中調(diào)用mounted的實(shí)現(xiàn)操作

    vue 在methods中調(diào)用mounted的實(shí)現(xiàn)操作

    這篇文章主要介紹了vue 在methods中調(diào)用mounted的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue mock.js模擬數(shù)據(jù)實(shí)現(xiàn)首頁(yè)導(dǎo)航與左側(cè)菜單功能

    Vue mock.js模擬數(shù)據(jù)實(shí)現(xiàn)首頁(yè)導(dǎo)航與左側(cè)菜單功能

    這篇文章主要介紹了Vue mock.js模擬數(shù)據(jù)實(shí)現(xiàn)首頁(yè)導(dǎo)航與左側(cè)菜單功能,mockjs是用來(lái)模擬產(chǎn)生一些虛擬的數(shù)據(jù),可以讓前端在后端接口還沒有開發(fā)出來(lái)時(shí)獨(dú)立開發(fā)。我們可以使用真實(shí)的url,mockjs可以攔截ajax請(qǐng)求,返回設(shè)定好的數(shù)據(jù)
    2022-09-09
  • vue3的reactive賦值問(wèn)題解決

    vue3的reactive賦值問(wèn)題解決

    vue3中直接對(duì)reactive聲明的變量本身進(jìn)行賦值是無(wú)效的,本文主要介紹了vue3的reactive賦值問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 詳解vue后臺(tái)系統(tǒng)登錄態(tài)管理

    詳解vue后臺(tái)系統(tǒng)登錄態(tài)管理

    這篇文章主要介紹了vue后臺(tái)系統(tǒng)登錄管理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 關(guān)于delete和Vue.delete的區(qū)別及說(shuō)明

    關(guān)于delete和Vue.delete的區(qū)別及說(shuō)明

    這篇文章主要介紹了關(guān)于delete和Vue.delete的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評(píng)論