国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

    文章

    4417

    瀏覽量

    67502
  • Harmony
    +關注

    關注

    0

    文章

    108

    瀏覽量

    3555

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    智能顯示模塊可以播放動畫嗎?動畫功能怎么實現,在哪可以添加?

    智能顯示模塊可以播放動畫嗎?動畫功能怎么實現,在哪可以添加?
    發表于 11-08 08:57

    SGTools--動畫控件--屏幕實現動畫顯示 就是這么簡單

    詳細步驟可以觀看視頻, 實現動畫很簡單,提前準備好gif文件和一個張背景圖 使用SGTools工具,就可以制作動畫界面啦 視頻中屏幕型號是7寸 HMT070ATA-9C
    發表于 09-16 10:29

    分享---儲能UI界面能量流動動畫實現方法

    本文分享 工商業儲能設備的UI界面中如何實現 能量流動的動畫效果。 本例子效果 基于拓普微工業級 7寸屏電容串口屏(HMT070ETA-D型號)實現: 第1步:建立工程和頁面 使用SGTools新建
    發表于 09-02 18:22

    【EASY EAI Orin Nano開發板試用體驗】使用和LVGL的anim(簡易動畫)和animimg(圖像動畫)控件組合實現復雜的動畫功能

    LVGL中,實現復雜的動畫功能往往需要anim和animimg兩個控件組合實現的,對于anim控件來說,可以實現對obj多邊形的平移,縮放
    發表于 08-09 21:37

    【EASY EAI Orin Nano開發板試用體驗】使用Linux posix文件讀取接口和LVGL的animimg(圖像動畫)控件實現動畫播放以及

    ) 甚至還可以lv_animimg控件添加互動控件比如button,實現動態背景效果:(置底視頻) lv_animimg實現沒有任何問題,然后就是LVGL定時器
    發表于 07-22 00:34

    harmony-utils之CacheUtil,緩存工具類

    harmony-utils之CacheUtil,緩存工具類
    的頭像 發表于 07-04 16:36 ?495次閱讀

    harmony-utils之CharUtil,字符工具類

    harmony-utils之CharUtil,字符工具類
    的頭像 發表于 07-04 16:34 ?486次閱讀

    harmony-utils之CrashUtil,異常相關工具類

    harmony-utils之CrashUtil,異常相關工具類
    的頭像 發表于 07-04 16:33 ?534次閱讀

    harmony-utils之DeviceUtil,設備相關工具類

    harmony-utils之DeviceUtil,設備相關工具類
    的頭像 發表于 07-03 18:27 ?632次閱讀

    harmony-utils之DisplayUtil,屏幕相關工具類

    harmony-utils之DisplayUtil,屏幕相關工具類
    的頭像 發表于 07-03 18:26 ?496次閱讀

    harmony-utils之EmitterUtil,Emitter工具類

    harmony-utils之EmitterUtil,Emitter工具類
    的頭像 發表于 07-03 18:24 ?432次閱讀

    harmony-utils之FileUtil,文件相關工具類

    harmony-utils之FileUtil,文件相關工具類
    的頭像 發表于 07-03 18:23 ?564次閱讀

    harmony-utils之FormatUtil,格式化工具類

    harmony-utils之FormatUtil,格式化工具類
    的頭像 發表于 07-03 18:22 ?537次閱讀

    harmony-utils之ImageUtil,圖片相關工具類

    harmony-utils之ImageUtil,圖片相關工具類
    的頭像 發表于 07-03 18:22 ?883次閱讀

    harmony-utils之DateUtil,日期工具類

    harmony-utils之DateUtil,日期工具類
    的頭像 發表于 06-25 22:15 ?439次閱讀