国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > HTML5 > 正文

Html5頁面內使用JSON動畫的實現

2024-09-05 07:22:48
字體:
來源:轉載
供稿:網友

問題背景

有一天我們的UI設計師找到我說,要把頁面中我自己用程序寫的動畫,換成他們給的json動畫,原因是有的動畫很復雜,自己寫起來達不到他們的預期效果(寫到這里我突然想到一個問題,這么復雜的動畫為什么不使用gif。。。。坐我對面的安卓開發小哥答因為gif播放的時候可能質量不高不流暢,好吧我信了)

我:????客戶端可以加json動畫,H5頁面沒聽說過可以讀json動畫哎

設計師一臉肯定,說可以的,有web版本。

寫到這里,我真的要好好夸一波我們的設計師妹子了,幾乎很多蠻好的解決方法都是在他們的“逼迫”之下找到的(哦,她們還會寫H5頁面。。。要我有何用系列

那問題來了,怎么在H5頁面里面使用json動畫呢

如何在H5頁面內使用json動畫

這時候設計師甩了一個鏈接給我,看這里lottie-web ;我點進去了解了一下,是Airbnb開源的一個動畫庫,該庫可以完成很多酷炫動畫,使用起來也很簡單,設計師只需要通過AE做成的動畫導出JSON文件,然后前端使用Lottie直接加載JSON文件生成動畫,既不需要設計師切N多gif,也不需要前端去進行復雜繪制了,一舉兩得,并且,Lottie全平臺可用,ios、Android、web、React Native都可以,且占用內存少,加載流暢。(這么個神仙東西我為什么現在才發現。。

說了這么多,那怎么在H5頁面里面使用呢?

很簡單了,設計師生成的文件夾發給你(設計師那邊只用在AE中加個lottie插件,導出就行了),打開之后應該是這樣子的,打開demo.html就知道是怎么用的了(所以我還在這里寫什么技術文章

玩笑歸玩笑,其實在使用中還是碰到了很多坑的,這里記錄幾個使用時注意的地方

1.demo.html里面有很多內聯的東西,使用時堆積在頁面內不好看

仔細看一下,其實demo.html把js和json都放進去了,這時候我們可以把js和json單獨分出來,js的話可以使用cdn上提供的地址

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.4.3/lottie.min.js"></script>

動畫需要的json數據放在data.json文件里面,但是給出的json文件里面的數據格式是這樣的(太長了 截不完

那如果你要在單獨的一個html里面使用script的方式引入json文件的話,會報錯,所以需要修改json文件,在前面加上變量,賦值。如下圖:

這樣你可以通過像引入js文件的方式一樣的引入該json

<script type="text/javascript" src="./data.json"></script>

這樣可用的demo.html就縮減成了下面這樣

<html xmlns="http://www.w3.org/1999/xhtml"><meta charset="UTF-8"><head>    <style>        body{            background-color:black;            margin: 0px;            height: 100%;            overflow: hidden;        }        #lottie{            background-color:#fff;            width:100%;            height:100%;            display:block;            overflow: hidden;            transform: translate3d(0,0,0);            text-align: center;            opacity: 1;        }    </style></head><body><div id="lottie"></div><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bodymovin/5.4.3/lottie.min.js"></script><script type="text/javascript" src="./data.json"></script><script>    var params = {        container: document.getElementById('lottie'),        renderer: 'svg',        loop: true,        autoplay: true,        animationData: animationData    };    var anim;    anim = lottie.loadAnimation(params);</script></body></html>

當然,你如果使用的是js模塊化編程的話,可以不用更改data.json,直接import進來就行了,如下:

import animationData from './data.json'

2.使動畫適配移動端

之所以覺得這是個坑是因為,設計師給我的動畫是全屏且非透明底的,然后她要求我將這個動畫以寬度100% 高度垂直居中截取的方式定位,我在瀏覽器里面試了下,360*640屏幕下,寬度100%,表現形式是這樣的(看上去是高度100% 寬度適配居中 兩邊漏出了黑色的背景色,見下圖藍色框起來的部分)

換成iPhone X的屏幕下,相反,表現出來是寬度100% 高度適配居中,上下漏出黑色背景色,見下圖藍色框起來的部分(究其原因是因為iphonex屏幕較長

這個布局好熟悉哇,跟img的object-fit屬性取值為contain的時候表現一致(object-fit也是寶藏,有興趣的同學可以去研究一下,非常好用)

我這里解決設計師的需求主要增加下面的代碼:

js部分:setTimeout(function() {    document.getElementsByTagName('svg')[0].style.height = 'auto';}, 50);css部分:(給lottie增加flex布局)#lottie {    width:100%;    height:100%;    transform: translate3d(0,0,0);    text-align: center;    opacity: 1;    position: absolute;    top: 0;    left: 0;    z-index: 3;    display: flex;    flex-direction: row;    justify-content: center;    align-items: center;}

最終效果:

總結

以上圖片截圖都是靜態的,實際是有一個動態效果的,我不知道怎么添加動圖就沒弄了,感興趣的可以試一下。

適用范圍:我感覺一般全屏的或者局部很復雜的動畫可以使用這個方法一試,比gif要流暢,兼容性也做得不錯,一些安卓產品比較酷炫的開屏就是使用的這個方法,H5頁面的話,簡單動畫一般自己程序實現就可以,還可以避免踩坑。

參考鏈接:
lottie官網
lottie-web github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
精品一区二区三区在线观看l| 精品国内自产拍在线视频| 国产wwww| 亚洲国产精华液| 欧美亚洲系列| 国精一区二区三区| 国产人成在线观看| 日本a级黄色| 国产一区二区三区不卡在线| 国产三级视频在线播放线观看| 国产天堂在线播放视频| 精品视频三区| 国精一区二区三区| 最近久乱中文字幕| 91久久麻豆| 国产免费专区| h网站免费在线观看| 国产裸舞福利在线视频合集 | 一本免费视频| 国产中文在线| 羞羞视频在线免费看| 国产天堂在线播放视频| 青草av在线| 精品卡一卡卡2卡3网站| 国产在线麻豆精品| av在线1区2区| 最近中文字幕mv免费高清视频8| 精品av中文字幕在线毛片| 九九免费视频| www.91av| 在线观看国产福利视频| 国产小视频在线播放| 国内精品一区视频| av在线免费播放网站| 国产对白在线| 国产视频资源| 国产系列电影在线播放网址| 高清欧美精品xxxxx在线看| 依依成人在线| 在线观看av的网站| 尤物在线精品视频| 国产激情视频一区二区三区| 国产偷激情在线| 国产黄色免费看| 精品入口麻豆传煤| 99中文字幕一区| 在线天堂中文www视软件| 国产精品国产三级国产试看| 国产午夜三区视频在线| 国产激情99| 夜夜操com| 黄色片大全在线观看| 日本中文字幕高清视频| 最近久乱中文字幕| 国产二区视频| h网址在线观看| 亚洲第一成年免费网站| 欧美专区日韩| 国产一区二区三区不卡免费观看| 中文字幕一区免费| 国产夫妻视频| 欧美精品久久久久久久小说| 九九精品视频在线观看九九| 中文字幕av中文字幕| 96久久久久久| 国产免费黄网站| 中文字幕av中文字幕| 69国产精品视频| 青青草视频免费在线观看| 国产美女视频一区二区三区| 国产一级黄色| 国产h色视频在线观看| 亚洲欧美一区二区三区在线播放| 麻豆网站在线| 97视频在线| 久久久久久五月天久久久久久久久| 国产精品外围在线观看| 伊人福利在线| 国产日产一区二区三区| 久久av少妇| 亚洲天堂二区| 国产福利在线| 国产视频二区在线观看| 欧美性xxxx交| av在线资源网| 99久久99热久久精品免费看| 久久久久久久久亚洲精品| 精品视频在线一区二区| 日韩av成人| 国产理论片免费观看| 麻豆电影传媒二区| 性网站在线观看| 在线免费观看污| 97国产在线| 国产二区视频在线观看| 国产免费视频| 丁香综合五月| 九九热视频在线观看| www.久草.com| www.狠狠操.com| www.91在线播放| 在线观看的av网站| 99reav| 在线中文字幕视频观看| 国产精品福利视频一区二区三区| 最近高清中文在线字幕在线观看| 日本卡一卡2卡3卡4精品卡网站| 91在线超碰| 精精国产xxxx视频在线动漫| 国产成a人亚洲精v品| 国产欧美在线观看视频| 天堂资源中文在线| 日本中文字幕在线看| 中文字幕不卡免费视频| 国产日产一区二区| 中文av在线播放| 97中文字幕| 在线免费观看污| 热99在线观看| 国产真实伦在线观看| 中文字幕网在线| 91视频黄色| 亚洲国产日韩在线人成电影| 超碰国产在线观看| 中文字幕日本在线| 夜夜嗨yeyeh| 1区2区3区在线| 亚洲图区综合| 最好2018中文免费视频| 一级二级在线观看| 丁香婷婷激情| 91资源在线观看| 免费三级毛片| 精品全国在线一区二区| 九九热在线观看视频| 69视频在线观看| 国产乱精品一区二区三区| 精品176二区| 国产三区四区在线观看| 啪啪免费视频一区| 91精品国产91久久久久久青草| 超碰国产在线| 亚洲综合色视频在线观看| 国产污视频在线| 玖玖在线视频| 日韩不卡高清| 国产激情视频一区二区| 久久精品蜜桃| 日本国产在线| 四虎精品成人a在线观看| 国产变态拳头交视频一区二区| 国产老肥熟xxxx在线观看| 久蕉依人在线视频| 欧美另类在线视频| 免费午夜一级| www狠狠操| 日本久久国产| 欧美成人精品福利网站| 欧美日韩在线中文字幕| 依依成人在线| 亚洲欧美综合乱码精品成人网| 最近中文字幕在线中文视频| 九九精品九九| 日本中文字幕在线播放| 国产乱视频在线观看| 国产精品亚洲色图| 中文字幕在线资源| 国产视频xxx| 国产爆初菊在线观看免费视频网站 | 国产三区在线观看| 国产激情在线| 伊人永久在线| 先锋影音av中文字幕| 亚洲夜夜综合| 亚洲人av在线| 国产在线视频福利| 国产偷倩在线播放| 18av在线播放| 男女羞羞视频在线观看| 国产农村av| 91在线看片| 日本电影在线观看| 好吊日视频在线观看| 国产日韩网站| 日本三级视频网站| 国产麻豆一级片| av网址在线看| 黄色一级视频网站| 国产福利在线| 国内外激情在线| 国产福利小视频在线| av资源网站在线观看| 国产一区精品| 不卡av免费观看| 国产成人亚洲综合小说区| av资源网站在线观看| 国产经典自拍视频在线观看 | 国产私人影院| 免费视频中文字幕| 国产精品美女视频免费观看软件 |