#打卡不停更# 鸿蒙JS自定义组件——长按膨胀按钮组件 原创 精华
Looker_song
发布于 2022-10-23 16:07
浏览
4收藏
前言
今天给大家分享下我个人在学习鸿蒙应用开发初期写的一个小组件,希望能帮助大家学习如何完成一个自定义组件。
组件介绍
常见的长按事件onlongpress不能设定长按的时间,除此之外,绑定了长按事件的按钮在完成长按操作前后并没有明显的样式变化,用户无法从中得到长按操作进行的反馈,在有此类需求的场景时是无法满足的。因此我根据这些需求开发一个自定义长按按钮组件,同时兼顾按钮和进度条两个功能。最初的设计图如下:
项目结构
组件开发
页面布局:使用stack栈布局,以canvas画布做背景,button按钮组件在上。
组件属性参数设置
参数名 | 描述 | 参数类型 | 默认值 |
---|---|---|---|
duration | 长按事件触发时长 | Number | 2000 |
btnColor | 按钮颜色 | String | #9D9D9D |
ringColor | 长按过程中外圈颜色 | String | #82D900 |
finishColor | 事件就绪时外圈阴影颜色 | String | #FFFF37 |
动作拆解:在按钮上绑定ontouchstart事件和ontouchend事件,以实现长按操作。
- 点击动作:点击时显示外圈,按钮逐渐变大,直至达到设定时长膨胀至最大。
- 松开动作:长按达到设定时间,生成外圈阴影,松开即可启动事件;若中途松开,按钮瞬间恢复到初始状态。
组件引用
- 引用声明
- 参数传递
- 注意,在官方文档中对在父组件中绑定子组件的事件方法或属性命名时,有以下要求:
最终效果
结语
自定义组件开发的意义在于解决某些特定场景的需求,该组件的开发难度较低,希望这篇文章能帮助大家理解自定义组件设计和开发的流程。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
SwellBtn.rar 3.23M 23次下载
赞
5
收藏 4
回复
5
2
4
相关推荐
感觉会在某些验证功能中用到
不错不错,B站的点赞按钮长按就是这样的效果