色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Harmony上實現AnimateCSS動畫

OpenHarmony技術社區 ? 來源:OpenHarmony技術社區 ? 作者:OpenHarmony技術社區 ? 2022-04-26 11:00 ? 次閱讀

顯式動畫

ef6f74ee-c480-11ec-bce3-dac502259ad0.png參考文檔:
https://gitee.com/openharmony/docs/blob/5654c2b940ab3e2f4f0baf435e630c4ef3536428/zh-cn/application-dev/reference/arkui-ts/ts-explicit-animation.md

來看一個簡單的示例:
@Entry
@Component
structAnimationPage{
//位移屬性
@State_translate:TranslateOptions={
x:0,
y:0,
z:0
}

build(){
Flex({
alignItems:ItemAlign.Center,
justifyContent:FlexAlign.Center,
direction:FlexDirection.Column
}){
Button('執行動畫').margin({bottom:50}).onClick(()=>{
//添加一個簡單顯式動畫
animateTo({
duration:1000,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
},()=>{
//閉包內更改狀態
this._translate={
x:0,
y:100,
z:0
}
})
})

Column(){
Text('Animate.css')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.fontColor('#351c75')
.translate(this._translate)//位移變換
}
}
.width('100%')
.height('100%')
}
}
ef7b3022-c480-11ec-bce3-dac502259ad0.gif

如果我們希望向下位移完成后,再向右位移,就需要在第一個動畫完成后再進行第二個動畫,即在第一個動畫的 onFinish 函數中執行第二個動畫。

ef8a0ee4-c480-11ec-bce3-dac502259ad0.gif

這樣組合起來可以構成一個更復雜的連續動畫

//單步動畫執行函數
animationStep(value:AnimateParam,event:()=>void){
return()=>{
returnnewPromise((resolve)=>{
letonFinish=value.onFinish
value.onFinish=()=>{
if(onFinish)onFinish()
resolve(true)
}
animateTo(value,event)
})
}
}

創建 4 步動畫:

aboutToAppear(){
//每步動畫執行時長
lettime=200
this.step1=this.animationStep({
duration:time,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
onFinish:()=>{
//動畫執行完成
console.info('playend')
}
},()=>{
//閉包內更改狀態
this._translate={
x:0,
y:100,
z:0
}
})


this.step2=this.animationStep({
duration:time,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
onFinish:()=>{
//動畫執行完成
console.info('playend')
}
},()=>{
//閉包內更改狀態
this._translate={
x:100,
y:100,
z:0
}
})

this.step3=this.animationStep({
duration:time,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
onFinish:()=>{
//動畫執行完成
console.info('playend')
}
},()=>{
//閉包內更改狀態
this._translate={
x:100,
y:0,
z:0
}
})

this.step4=this.animationStep({
duration:time,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
onFinish:()=>{
//動畫執行完成
console.info('playend')
}
},()=>{
//閉包內更改狀態
this._translate={
x:0,
y:0,
z:0
}
})
}

順序執行 4 步動畫:

Button('執行動畫').margin({bottom:50}).onClick(async()=>{
awaitthis.step1()
awaitthis.step2()
awaitthis.step3()
awaitthis.step4()
})

實現 AnimateCSS 動畫

AnimateCSS:

https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.css

https://animate.style/
pulse 動畫:efa67a5c-c480-11ec-bce3-dac502259ad0.gif

看下 pulse 動畫樣式代碼:

.animate__pulse{
-webkit-animation-name:pulse;
animation-name:pulse;
-webkit-animation-timing-function:ease-in-out;
animation-timing-function:ease-in-out;
}

@keyframespulse{
from{
-webkit-transform:scale3d(1,1,1);
transform:scale3d(1,1,1);
}

50%{
-webkit-transform:scale3d(1.05,1.05,1.05);
transform:scale3d(1.05,1.05,1.05);
}

to{
-webkit-transform:scale3d(1,1,1);
transform:scale3d(1,1,1);
}
}

ETS 實現:

@State_scale:ScaleOptions={
x:1,
y:1,
z:1
}

...

Column(){
Text('Animate.css')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.fontColor('#351c75')
.translate(this._translate)//位移變換
.scale(this._scale)//比例變化
}

動畫方法:
  • 傳遞一個動畫總時長 time

  • 第一步動畫執行段為 0%-50%,所以動畫執行時長為總時長time * 50%

  • 第二步動畫執行段為 50%-100%,所以動畫執行時長為總時長time * 50%

	
asyncpulse(time){
//0%-50%
letstep1=this.animationStep({
duration:time*0.5,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
},()=>{
this._scale={
x:1.05,
y:1.05,
z:1.05
}
})

//50%-100%
letstep2=this.animationStep({
duration:time*0.5,//動畫時長
tempo:0.5,//播放速率
curve:Curve.EaseInOut,//動畫曲線
delay:0,//動畫延遲
iterations:1,//播放次數
playMode:PlayMode.Normal,//動畫模式
},()=>{
this._scale={
x:1,
y:1,
z:1
}
})

awaitstep1()
awaitstep2()
}

執行動畫:

Button('執行PULSE動畫').margin({bottom:50}).onClick(async()=>{
this.pulse(500)
})

efc6b9d4-c480-11ec-bce3-dac502259ad0.gif

審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4327

    瀏覽量

    62571
  • Harmony
    +關注

    關注

    0

    文章

    52

    瀏覽量

    2601

原文標題:在鴻蒙上實現AnimateCSS動畫

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DSP實現DDR2 PCB布局布線

    電子發燒友網站提供《DSP實現DDR2 PCB布局布線.pdf》資料免費下載
    發表于 10-15 09:16 ?0次下載
    <b class='flag-5'>在</b>DSP<b class='flag-5'>上</b><b class='flag-5'>實現</b>DDR2 PCB布局布線

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發表于 10-08 15:06 ?266次閱讀
    ESP8266 太空人<b class='flag-5'>動畫</b>的 OLED 顯示

    圖片動畫控件和Video image控件的使用方法

    UI開發過程中,序列幀基本是繞不開的,AWTK 支持多種方法實現序列幀顯示,本文介紹圖片動畫控件和Video image控件的使用方法。
    的頭像 發表于 08-06 16:44 ?857次閱讀
    圖片<b class='flag-5'>動畫</b>控件和Video image控件的使用方法

    多FPGA集群實現高級并行編程

    今天我們看的這篇論文介紹了多FPGA集群實現高級并行編程的研究,其主要目標是為非FPGA專家提供一個成熟且易于使用的環境,以便在多個并行運行的設備擴展高性能計算(HPC)應用。
    的頭像 發表于 07-24 14:54 ?1241次閱讀

    【AWTK使用經驗】如何實現序列幀動畫

    目前想在AWTK中顯示炫酷流暢的圖片動畫,此時可以用video_image控件來播放序列幀動畫。本篇文章將介紹該控件的原理和使用方法。圖1ZTP800示教器運行v
    的頭像 發表于 07-18 08:25 ?414次閱讀
    【AWTK使用經驗】如何<b class='flag-5'>實現</b>序列幀<b class='flag-5'>動畫</b>

    通過視頻幀提取及批量取模轉換實現基于STC32的點陣LED動畫播放

    通過視頻幀提取及批量取模轉換實現基于STC32的點陣LED動畫播放
    的頭像 發表于 06-27 02:16 ?379次閱讀
    通過視頻幀提取及批量取模轉換<b class='flag-5'>實現</b>基于STC32的點陣LED<b class='flag-5'>動畫</b>播放

    HarmonyOS開發案例:【轉場動畫

    本教程中,我們將會通過一個簡單的樣例,學習如何基于ArkTS的聲明式開發范式開發轉場動畫。其中包含頁面間轉場、組件內轉場以及共享元素轉場。
    的頭像 發表于 05-06 15:42 ?1043次閱讀
    HarmonyOS開發案例:【轉場<b class='flag-5'>動畫</b>】

    OpenHarmony實戰開發-如何實現動畫

    請求動畫幀 請求動畫幀時通過requestAnimationFrame函數逐幀回調,調用該函數時傳入一個回調函數。 runframe調用requestAnimationFrame時
    發表于 05-06 14:11

    HarmonyOS開發案例:【自定義下拉刷新動畫

    主要介紹組件動畫animation屬性設置。當組件的某些通用屬性變化時,可以通過屬性動畫實現漸變效果,提升用戶體驗。
    的頭像 發表于 04-29 16:06 ?960次閱讀
    HarmonyOS開發案例:【自定義下拉刷新<b class='flag-5'>動畫</b>】

    OpenHarmony實戰開發-如何實現組件動畫

    ArkUI為組件提供了通用的屬性動畫和轉場動畫能力的同時,還為一些組件提供了默認的動畫效果。例如,List的滑動動效,Button的點擊動效,是組件自帶的默認動畫效果。
    的頭像 發表于 04-28 15:49 ?615次閱讀
    OpenHarmony實戰開發-如何<b class='flag-5'>實現</b>組件<b class='flag-5'>動畫</b>。

    HarmonyOS開發案例:【動畫

    使用動畫樣式,實現幾種常見動畫效果:平移、旋轉、縮放以及透明度變化。
    的頭像 發表于 04-25 15:13 ?469次閱讀
    HarmonyOS開發案例:【<b class='flag-5'>動畫</b>】

    生成式 AI 制作動畫:周期短、成本低!

    ? 電子發燒友網報道(文/李彎彎)生成式AI動畫市場中的應用正在迅速崛起。根據市場機構數據,預計到2023年生成式AI動畫市場的規模將達到177億美元,年復合增長率為35.7%。
    的頭像 發表于 03-18 08:19 ?3618次閱讀
    生成式 AI 制作<b class='flag-5'>動畫</b>:周期短、成本低!

    鴻蒙開發之發動畫

    動畫的原理是一個時間段內,多次改變UI外觀,由于人眼會產生視覺暫留,所以最終看到的就是一個“連續”的動畫。UI的一次改變稱為一個動畫幀,對應一次屏幕刷新,而決定
    的頭像 發表于 02-01 15:25 ?626次閱讀
    鴻蒙開發之發<b class='flag-5'>動畫</b>篇

    探索閥門奧秘:80種閥門結構原理動畫

    分享80個閥門結構原理動畫,一次看過癮!
    發表于 01-19 11:22 ?952次閱讀
    探索閥門奧秘:80種閥門結構原理<b class='flag-5'>動畫</b>

    open harmony照明開關應用介紹

    開關。 open harmony照明開關是一種基于智能家居技術的照明控制裝置,它可以與家中的燈飾設備進行連接,并通過無線通信技術實現開關控制、亮度調節、顏色變換等功能。與傳統的物理開關相比,open harmony照明開關具有以
    的頭像 發表于 01-05 17:00 ?1121次閱讀
    主站蜘蛛池模板: 伊人亚洲AV久久无码精品| 99亚洲精品自拍AV成人软件 | 免费xxx成年大片| 色色色五的天| 45分钟做受片免费观看| 国产国产成年在线视频区| 韩国演艺圈悲惨在线| 国产AV电影区二区三区曰曰骚网| 国产在线精品视频免费观看| 秋霞特色大片18岁入口| 纯肉高H放荡受BL文库| 看了n遍舍不得删的黄文| 亚洲精品国产乱码AV在线观看| BT7086福利二区最新| 妹妹成人网| 中文字幕乱码在线人视频| 国产中文视频无码成人精品| 午夜国产精品视频在线| 福利视频一二三在线观看| 人人射人人爱| 公粗挺进了我的密道在线播放贝壳 | 亚洲中文字幕国产综合| 国产小视频在线高清播放| 无码AV精品久久一区二区免费| yellow片高清视频免费看| 青柠在线观看免费播放电影| va亚洲va天堂va视频在线| 日本高清不卡一区久久精品| RUNAWAY韩国动漫免费网| 色尼玛亚洲| 久久内在线视频精品mp4| 日本高清加勒比| 国产欧美精品一区二区三区-老狼| 先锋影音av最新资源| 久久国产免费| qvod在线观看| 夜色88V精品国产亚洲AV| 蜜臀久久99精品久久久久久做爰| asian4you裸模| 亚洲AV久久久噜噜噜久久| 久久永久免费视频|