精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

HarmonyOS - 自定義組件之Switch開關

系統(tǒng) OpenHarmony
最近在開發(fā)FA項目時使用到switch開關組件,該switch組件是基于JS擴展的類Web開發(fā)范式組件中的基礎組件 。

??想了解更多關于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??

前言

最近在開發(fā)FA項目時使用到switch開關組件,該switch組件是基于JS擴展的類Web開發(fā)范式組件中的基礎組件 。在使用的過程中發(fā)現(xiàn)了一些問題,比如:

1、設置寬高等樣式屬性不會改變switch組件本身的寬高,而是會修改switch組件的內(nèi)邊距。

2、switch組件存在一定比例的縮放。

使用switch組件在頁面布局時存在上述等問題,但可通過一些技術手段(transform屬性的scale)或一些替代方案,達到預期效果。基于此,通過現(xiàn)在已掌握的FA相關知識實現(xiàn)一個簡單的自定義switch開關組件。

效果展示

#夏日挑戰(zhàn)賽# HarmonyOS - 自定義組件之switch開關-開源基礎軟件社區(qū)#夏日挑戰(zhàn)賽# HarmonyOS - 自定義組件之switch開關-開源基礎軟件社區(qū)

實現(xiàn)原理

基于css關鍵幀動畫animation和@keyframes,通過對switch的滑塊設置css屬性position: absolute,并添加相應的動畫class,即可達到switch開關的過渡效果。給switch設置固定的寬度和高度,保證switch組件不被縮放,在switch組件的外層包裹div組件,來實現(xiàn)布局的合理性。

css動畫樣式官方指導API:

屬性名稱

數(shù)據(jù)類型

默認值

描述

transform

string

-

支持同時設置平移/旋轉/縮放等屬性。

animation6+

string

0s ease 0s 1 normal none running none

格式:duration | timing-function | delay | iteration-count | direction | fill-mode| play-state | name,每個字段不區(qū)分先后,但是 duration / delay 按照出現(xiàn)的先后順序解析。

animation-name

string

-

指定@keyframes的名稱。

animation-fill-mode

string

none

指定動畫開始和結束的狀態(tài):1、none:在動畫執(zhí)行之前和執(zhí)行之后都不會應用任何樣式到目標上;2、forwards:在動畫結束后,目標將保留動畫結束時的狀態(tài)(在最后一個關鍵幀中定義);3、backwards6+:動畫將在animation-delay期間應用第一個關鍵幀中定義的值。當animation-direction為"normal"或"alternate"時應用from關鍵幀中的值,當animation-direction為"reverse"或"alternate-reverse"時應用to關鍵幀中的值。4、both6+:動畫將遵循forwards和backwards的規(guī)則,從而在兩個方向上擴展動畫屬性。

animation-duration

<time>

0

定義一個動畫周期。支持的單位為[s(秒) | ms(毫秒) ],默認單位為ms,格式為:1000ms或1s。(注意:animation-duration 樣式必須設置,否則時長為 0,則不會播放動畫。)

animation-delay

<time>

0

定義動畫播放的延遲時間。支持的單位為[s(秒) | ms(毫秒) ],默認單位為ms,格式為:1000ms或1s。

translateX

<length> | <percent>

-

X軸方向平移動畫屬性。

實現(xiàn)過程

switch組件 hml 部分:

<div class="define-switch">
<!-- switch 滑塊背景包裹節(jié)點 -->
<div class="switch-wrapper {{ isChecked ? 'bg-blue' : 'bg-grey'}}" onclick="handleClick"></div>
<!-- switch 滑塊 -->
<div class="switch-block {{ isChecked ? 'closed' : 'opened'}}"></div>
</div>

switch組件 css 部分:

.define-switch {
position: relative;
padding: 2px;
}
.switch-wrapper {
position: relative;
width: 36px;
height: 20px;
background-color: rgba(0,0,0,0.05);
border-radius: 25px;
}
.switch-block {
position: absolute;
left: 2px;
top: 2px;
width: 16px;
height: 16px;
background-color: #FFFFFF;
border-radius: 8px;
}
.opened {
animation-name: open;
animation-duration: 1s;
animation-fill-mode: forwards;
}
.closed {
animation-name: close;
animation-duration: 1s;
animation-fill-mode: forwards;
}
.bg-blue {
background-color: #0A59F7;
}
.bg-grey {
background-color: rgba(0,0,0,0.05);
}
@keyframes open {
from {
transform: translateX(16px);
}
to {
transform: translateX(0px);
}
}
@keyframes close {
from {
transform: translateX(0px);
}
to {
transform: translateX(16px);
}
}

switch組件 js 部分:

export default {
name: 'DefineSwitch',
data() {
return {
isChecked: false,
}
},
handleClick(evt) {
console.log('事件對象event:' + JSON.stringify(evt) + this.isChecked);
this.isChecked = ! this.isChecked; // 修改isChecked的值
this.$emit('switchChange', {checked: this.isChecked}); // 向父組件傳遞值
}
}

父組件 hml中:

<!-- 引入組件 -->
<element name="mySwitch" src="../mySwitch/mySwitch.hml"></element>
<!-- 組件使用 -->
<div style="width: 40px; height: 24px;">
<mySwitch @switch-change="handleSwitchChange"></mySwitch>
</div>

父組件 js中:

handleSwitchChange(e) {
console.log('子組件傳來的數(shù)據(jù)' + e.detail.checked); // 父組件中獲取到switch的開關狀態(tài)
}

實現(xiàn)中遇到的問題及解決方案:

問題描述:在實現(xiàn)關鍵幀動畫時switch滑塊執(zhí)行完最后一幀動畫后會回到原來的位置,導致動畫執(zhí)行效果不理想。

原因分析:動畫屬性animation的animation-fill-mode屬性默認為none( 在動畫執(zhí)行之前和之后都不會應用任何樣式到目標上 )。

解決方案:將animation-fill-mode屬性設置為 forwards ( 在動畫結束后,目標將保留動畫結束時的狀態(tài) )。

總結

此自定義組件是對css關鍵幀動畫、父子組件通信的回顧。

??想了解更多關于開源的內(nèi)容,請訪問:??

??51CTO 開源基礎軟件社區(qū)??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關推薦

2021-11-01 10:21:36

鴻蒙HarmonyOS應用

2022-07-15 16:45:35

slider滑塊組件鴻蒙

2022-06-30 14:02:07

鴻蒙開發(fā)消息彈窗組件

2021-12-24 15:46:23

鴻蒙HarmonyOS應用

2022-07-12 16:56:48

自定義組件鴻蒙

2022-04-24 15:17:56

鴻蒙操作系統(tǒng)

2022-05-20 14:34:20

list組件鴻蒙操作系統(tǒng)

2023-02-20 15:20:43

啟動頁組件鴻蒙

2021-11-24 10:02:53

鴻蒙HarmonyOS應用

2021-09-15 10:19:15

鴻蒙HarmonyOS應用

2022-10-26 15:54:46

canvas組件鴻蒙

2022-10-25 15:12:24

自定義組件鴻蒙

2022-07-06 20:24:08

ArkUI計時組件

2022-02-21 15:16:30

HarmonyOS鴻蒙操作系統(tǒng)

2021-12-21 15:22:22

鴻蒙HarmonyOS應用

2021-12-30 16:10:52

鴻蒙HarmonyOS應用

2021-11-22 10:00:33

鴻蒙HarmonyOS應用

2022-02-16 16:09:12

鴻蒙游戲操作系統(tǒng)

2021-11-04 09:55:50

鴻蒙HarmonyOS應用

2022-02-16 15:25:31

JS代碼Canvas鴻蒙
點贊
收藏

51CTO技術棧公眾號

人妻一区二区三区| 三级影片在线看| 国产成人a视频高清在线观看| 国产精品乱码一区二三区小蝌蚪| 91嫩草在线视频| 日韩久久精品视频| 欧美日韩老妇| 亚洲第一免费网站| 2025韩国理伦片在线观看| 性欧美ⅴideo另类hd| 久久噜噜亚洲综合| av在线不卡观看| 自拍偷拍第八页| 亚洲视频狠狠| xxxxx成人.com| 野花社区视频在线观看| 欧美日韩午夜电影网| 色吊一区二区三区| 99久久国产综合精品五月天喷水| 男人资源在线播放| 久久久精品国产免费观看同学| 5g国产欧美日韩视频| 日本成人一级片| 国产亚洲毛片在线| 欧美激情中文字幕在线| 色偷偷男人天堂| 香蕉久久精品| 欧美精品一区二区蜜臀亚洲| 日本中文字幕影院| 最新欧美电影| 精品国产精品三级精品av网址| 日韩中文在线字幕| 秋霞成人影院| 国产精品久久久久久久久免费樱桃 | 日韩精品亚洲一区二区三区免费| 欧美激情国产精品| 日韩精品一区二区亚洲av性色 | 国产一区二区三区欧美| 五十路六十路七十路熟婆| 九九九九九九精品任你躁| 欧美日韩不卡在线| 第四色婷婷基地| 免费在线成人激情电影| 一本色道久久综合狠狠躁的推荐 | 亚洲精品国产精品乱码不99按摩 | 国产精品第七影院| 国产suv精品一区二区33| 一本色道久久综合| 4438全国亚洲精品在线观看视频| 国产网站在线看| 欧美视频在线观看| 欧美激情aaaa| 国产精彩视频在线观看| 亚洲午夜在线| 韩国三级电影久久久久久| 久久精品美女视频| 激情一区二区| 欧美亚洲另类视频| 欧美一区二区三区网站| 视频在线观看91| 国产精品美女久久久免费| 最近中文字幕在线视频| 久热成人在线视频| 成人精品久久av网站| 国产免费黄色大片| 国产91丝袜在线播放九色| 国产精品久久久久久久免费大片| 欧美熟妇另类久久久久久不卡| 成人激情免费电影网址| 欧美激情第六页| 国内三级在线观看| 中文字幕亚洲视频| 97在线免费视频观看| 波多野结衣在线观看| 欧美丝袜一区二区三区| 欧美大尺度做爰床戏| 不卡精品视频| 亚洲第一网站男人都懂| 中文字字幕码一二三区| 久久影视一区| 欧美激情视频一区二区| 无码人妻久久一区二区三区| 久久超碰97中文字幕| 99在线观看视频网站| 亚洲区小说区图片区| 欧美激情一二三区| 激情六月天婷婷| 波多野结衣亚洲| 欧美日本一区二区三区| 中文字幕人妻熟女在线| 国产欧美高清视频在线| 美女久久久久久久久久久| 久热这里只有精品6| 美女看a上一区| 国产伦精品一区二区三区四区免费 | 欧美一区一区| 亚洲桃花岛网站| 欧美成人精品欧美一级私黄| 视频一区免费在线观看| 99高清视频有精品视频| 国产一二在线观看| 亚洲最大的成人av| 黄色aaa级片| 欧美变态网站| 久久久精品国产亚洲| 日本熟女毛茸茸| 国产a区久久久| 亚洲精品不卡| 成人性生交大片免费观看网站| 欧美一卡2卡3卡4卡| 新91视频在线观看| 激情欧美一区| 91免费福利视频| av电影在线观看| 疯狂做受xxxx高潮欧美日本| 中文写幕一区二区三区免费观成熟| 国产精品美女久久久久久不卡| 久久久免费高清电视剧观看| 国产老妇伦国产熟女老妇视频| 久久品道一品道久久精品| 日韩日韩日韩日韩日韩| 国产精品1区在线| 丝袜亚洲另类欧美重口| 国产99免费视频| 久久日韩粉嫩一区二区三区| 欧美二区在线视频| 福利片在线一区二区| 欧美精品日韩三级| 国产视频www| 国产精品家庭影院| 在线免费观看视频黄| 国产精品一区二区av日韩在线| 97精品一区二区三区| 亚洲精品一区二区三区四区| 一区二区视频在线| 99999精品| 综合久久久久| 亚洲一区二区在线| www久久日com| 欧美一区二区三区视频在线观看| 欧美xxxooo| 麻豆国产精品一区二区三区 | 亚洲自啪免费| 九九九九久久久久| 僵尸再翻生在线观看| 亚洲成人精品久久| 日韩三级视频在线播放| 99精品视频一区二区| 亚洲熟妇国产熟妇肥婆| 久久中文资源| 77777少妇光屁股久久一区| 欧美 日韩 中文字幕| 午夜精品aaa| 亚洲天堂成人av| 校园激情久久| 色姑娘综合网| 香蕉久久一区| 欧美日韩成人在线视频| 亚洲福利在线观看视频| 午夜免费久久看| 国产精品九九九九九| 日本色综合中文字幕| 伊人久久大香线蕉综合75| 国产精品亚洲综合在线观看| 色综合久久88| 亚洲欧美日韩免费| 欧美日韩一区二区三区四区五区| 黄色a级片在线观看| 国产91精品露脸国语对白| 亚洲人精品午夜射精日韩 | 亚洲性猛交xxxxwww| 一本色道久久综合熟妇| 亚洲精品视频在线观看免费| 国产麻豆剧传媒精品国产av| 日韩精品亚洲一区二区三区免费| 麻豆md0077饥渴少妇| 999久久精品| 欧美在线观看视频| 麻豆系列在线观看| 欧美一级艳片视频免费观看| 日韩欧美国产亚洲| 国产欧美精品一区二区色综合朱莉| 久久久精品高清| 精品成人国产| 亚洲国产日韩欧美| av不卡一区二区| 国产91在线播放精品91| av大全在线| 亚洲视频在线播放| www日本在线| 在线看日本不卡| 九九热精品在线观看| 国产清纯白嫩初高生在线观看91 | 成人欧美一区二区三区| 佐佐木明希电影| 日韩av电影天堂| 福利视频一二区| 久久久久国产| 奇米888一区二区三区| 玖玖精品一区| 国产精品久久久久久av福利| 七七成人影院| 永久555www成人免费| 神马午夜电影一区二区三区在线观看| 欧美日韩一区二区三区高清| 日韩成人高清视频| 亚洲人成影院在线观看| 亚洲黄色小说视频| www.亚洲人| 性xxxxxxxxx| 极品少妇xxxx精品少妇偷拍| 少妇性饥渴无码a区免费| 欧美成人一品| 亚洲日本精品| 欧美在线观看视频一区| 久久久久资源| 国产福利一区二区精品秒拍| 亚洲自拍偷拍福利| 国产综合色激情| 国产精品9999| 中文字幕在线免费观看视频| 久久久久免费视频| 18视频在线观看网站| 爱福利视频一区| 97人人在线| 在线免费看av不卡| 国产午夜精品一区理论片| 亚洲精品99久久久久| 亚洲av无码国产精品久久不卡| 6080午夜不卡| 国产精品久久影视| 欧美日韩成人综合| 在线免费观看一区二区| 日本久久一区二区| 久久久久久久亚洲| 在线观看网站黄不卡| 亚洲成熟少妇视频在线观看| 色噜噜久久综合| 日本一本在线观看| 在线欧美日韩国产| 美女黄页在线观看| 欧美日韩一级二级| 一级黄在线观看| 欧美日韩一区二区电影| 嫩草影院一区二区三区| 欧美系列亚洲系列| 97国产精品久久久| 91精品国产一区二区三区| av小说天堂网| 精品国产a毛片| 污污网站在线免费观看| 国产视频在线观看一区二区| 青青操视频在线| 国产亚洲欧美另类中文| 在线看的av网站| 九九久久精品一区| 丰乳肥臀在线| 欧洲亚洲免费在线| 91p九色成人| 亚洲bt欧美bt日本bt| 国产精品巨作av| 欧美一级爱爱| 日韩成人精品一区| 国产a级片免费看| 黄色在线成人| 青青在线免费观看视频| 国产在线播放一区二区三区| 国产51自产区| 国产婷婷色一区二区三区在线| 天堂资源在线视频| 一区二区三区.www| 欧美激情黑白配| 欧美精品免费视频| 少妇av在线播放| 一区二区三区视频观看| 18视频在线观看| 日本成人激情视频| 国模大尺度视频一区二区| 国产一区二区三区四区hd| 精品久久久久久久| 欧美乱做爰xxxⅹ久久久| 亚洲自拍另类| 麻豆网站免费观看| 久久青草国产手机看片福利盒子| 日本一二三区在线观看| 午夜精品久久久久久久 | 欧美成人乱码一区二区三区| 亚洲色图另类小说| 久久精品成人动漫| 免费毛片b在线观看| 国产欧美日韩中文字幕| 久草精品视频| 黄色一级片网址| 午夜亚洲影视| 男生和女生一起差差差视频| 国产亚洲制服色| 久草中文在线视频| 欧美午夜一区二区三区| 少妇荡乳情欲办公室456视频| 日韩中文第一页| 中文字幕在线官网| 国产98在线|日韩| 手机在线一区二区三区| 九九九九免费视频| 国产一二三精品| 国产亚洲精品熟女国产成人| 一区二区三区免费观看| 中文字幕资源网| 亚洲免费视频观看| 久久av色综合| 91欧美视频网站| 日韩精品网站| 亚洲精品乱码久久久久久自慰| 成人免费高清视频在线观看| 亚洲波多野结衣| 欧美性受xxxx黑人xyx性爽| 亚洲欧美日本在线观看| 欧美精品激情在线观看| 老司机亚洲精品一区二区| 亚洲精品中文字幕在线| 三级在线观看一区二区| 免费在线观看成年人视频| 亚洲最新在线观看| 超碰在线观看av| 久久午夜a级毛片| 亚洲精品三区| 一区二区三区四区五区精品 | 国产精品观看| 亚洲欧美一区二区三区不卡| 中文字幕一区二区三区四区不卡| 国产日韩久久久| 在线成人一区二区| 巨胸喷奶水www久久久| 日本一区高清在线视频| 鲁大师成人一区二区三区| 少妇激情一区二区三区视频| 亚洲h在线观看| 神马午夜在线观看| 91精品国产99| 台湾佬综合网| 成人观看免费完整观看| 久久久久久久久伊人| 丰满人妻老熟妇伦人精品| 亚洲免费成人av电影| 26uuu亚洲电影| 欧美一区二区三区精美影视| 亚洲欧美日韩精品一区二区 | 天天操天天干天天操| 久久全球大尺度高清视频| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 高清不卡一区二区三区| 在线视频观看日韩| 中文精品在线观看| 欧洲一区二区av| 色多多视频在线观看| 成人久久18免费网站图片| 综合久久99| 水蜜桃av无码| 日本韩国视频一区二区| 在线a免费看| 5g国产欧美日韩视频| 国产欧美在线| 天天操天天干天天操天天干| 欧美老人xxxx18| 黄页网站大全在线免费观看| 精品日本一区二区| 日韩成人一级大片| 久草手机视频在线观看| 日韩精品资源二区在线| 伊人网在线播放| 国产精品无码乱伦| 99久久免费国产| 中文字幕有码视频| 欧美国产日韩一区| 少妇精品久久久一区二区| 亚洲一区二区三区观看| 亚洲图片有声小说| 激情小视频在线| 成人3d动漫一区二区三区91| 久久国产福利| 丝袜美腿小色网| 国产午夜精品麻豆| 精品国产不卡一区二区| 黄色片视频在线免费观看| 国产精品成人免费精品自在线观看| 内射后入在线观看一区| 国产精品白嫩美女在线观看| 女主播福利一区| 人人妻人人澡人人爽| 欧美白人最猛性xxxxx69交| 精品国产免费人成网站| 亚洲成人动漫在线| 久久精品夜色噜噜亚洲a∨| 国产丝袜视频在线观看| 91大神福利视频在线| 亚洲二区三区不卡| 精品人妻互换一区二区三区| 日韩一级片在线播放| h1515四虎成人| 成人一对一视频|