OpenHarmony-基于ArkUI的Hue滑块组件(JS)
时间:2023-03-13 17:55:12
科技观察
了解更多开源请访问:开源基础软件社区https://ost.51cto.com前言由于项目需要,和这个组件目前还没有社区其他童鞋写过,想着自己造个轮子,帮OpenHarmony做个生态。其实组件的基本功能已经实现了,只是还不够理想。后续会进行维护和更新,继续完善更多功能。开发环境说明工具版本:OpenHarmonyDevEcoStudio3.0Beta3SDK版本:3.0.0.901(APIVersion8Beta3)组主要组件:组件名称yg-slider显示效果属性属性名称类型默认值函数g-colorArray[]渐变色值组,eg:#ff9800stepNumber20步长,g-color属性中每两个渐变色之间的步长,步长越大越准确,渲染压力越大show-cardBooleanfalse是否显示色卡组件事件属性nametype返回值备注get-resultFunction{num:String,rgbColor:String,hexColor:String,hex:Object}num:当前滑块下标值,rgbColor:rgb颜色值【rgb(0,0,0)】,hex颜色value【##ff9800】,hex:R,G,B对应十六进制的十六进制值调用实现hml中需要引用的元素导入组件。
jsscheduled中的参数传递和绑定事件。从“../../common/utils/log”导入日志constlg=newLog('indexpage');//你可以传入一个值作为页面的标识符exportdefault{data:{gColor:['#FF0000','#FFE300','#74FF00','#00FFA6','#00FDFF','#0034FC','#4200FF','#BC00FF','#FD00FF','#FF0000'],步骤:20,showCard:true,},onInit(){},getResult(res){lg.info(res._detail)},}gColor为渐变色值组,需要与css样式保持一致。我尝试绑定linear-gradient到内联样式,但是报错提示无法绑定渐变的内联样式。此问题已在问题中提出:https://gitee.com/openharmony/docs/issues/I5F8KC?from=project-issue。实现思路是根据UI写样式。绑定滑块的触摸事件。获取滑块的长度和位置,与当前触摸的位置进行比较,计算得到滑块的位置。封装了两种颜色之间的渐变值集合。根据渐变值组的总长度设置为滑块的刻度值。滑动滑块到某个位置计算位置比例,得到渐变值组对应的颜色值,赋给色卡显示。实现过程1、根据UI编写页面和样式ygSlider.hml页面: