小程序自定義組件 slider

承接上一篇progress,slider才是主角
微信官方提供的slider功能有限,無法滿足音頻播放所需要用到的全部功能,所以這里寫了一個(gè)自定義slider組件滿足業(yè)務(wù)開發(fā)中的需求。寫的很粗糙,不足之處請指正!

改組件主要提供以下功能
1、可自定義滑塊(圖片或自定義視圖),默認(rèn)為和官方一樣的白色圓形
2、劃出緩沖范圍自動(dòng)回滾
3、漸變前景色

下面主要講講這幾個(gè)功能的實(shí)現(xiàn)用法和注意事項(xiàng),其他功能請下載文末的demo查看

不知道怎么使用自定義組件的同學(xué),可以查看我的上一篇文章progress

1、實(shí)現(xiàn)滑塊的點(diǎn)擊滑動(dòng),主要用到下面五個(gè)方法

bindtap='sliderTap'
bindtouchstart='sliderStart' 
bindtouchmove='sliderChange'
bindtouchend='sliderEnd' 
bindtouchcancel='sliderCancel'

在js文件中將這五個(gè)方法拋出,讓使用該組件的頁面可以監(jiān)聽到這些方法

自定義組件觸發(fā)事件時(shí),需要使用 triggerEvent 方法,指定事件名、detail對象和事件選項(xiàng):

以上五個(gè)方法都要使用triggerEvent 監(jiān)聽
sliderStart: function (e) {
      if (!this.data.disabled) {
        let detail = e.changedTouches;
        let option = {};
        this.triggerEvent('sliderStart', detail, option);
      }
},

2、在這個(gè)組件中把默認(rèn)滑塊的大小規(guī)定在[20, 40]rpx之間。有兩個(gè)地方需要作出限制
2.1、css文件 設(shè)置滑塊的上下限

max-width: 40rpx;
max-height: 40rpx;
min-width: 20rpx;
min-height: 20rpx;

2.2、js文件 在attached方法中對滑塊大小作出限制

    let blockSize = this.data.blockSize;
    if (blockSize > 40) {
      this.setData({
        blockSize: 40
      })
    } else if (blockSize < 20) {
      this.setData({
        blockSize: 20
      })
    }

3、還有一個(gè)值得注意的地方是,在使用該組件的時(shí)候要設(shè)置slider距離屏幕左邊的距離,這個(gè)距離填寫你項(xiàng)目中的實(shí)際距離即可

 slider-left='75'

4、該組件所用到的單位均為rpx

5、參數(shù)釋義:
width: slider和progress 長度
strokeWidth: slider和progress 寬度
radius: slider和progress圓角
bufferColor: 緩沖條顏色
percent: 緩沖條百分比
backgroundColor: progress背景色
activeColor: slider前景色
value: 當(dāng)前值
max: 最大值
blockSrc: 圖片滑塊地址
blockImageWidth: 圖片滑塊寬
blockImageHeight: 圖片滑塊高
blockSize: 默認(rèn)滑塊大小
blockColor: 默認(rèn)滑塊顏色
isCustom: 是否自定義滑塊 自定義滑塊必須設(shè)置isCustom為true

6、下面放一些該組件實(shí)例圖文


設(shè)置value 和 max
設(shè)置滑塊大小
設(shè)置滑塊顏色
圖片滑塊

7、沒有寫時(shí)間組件,所以時(shí)間要自己加哦

8、下一篇文章audio是一個(gè)音頻播放實(shí)例

下載地址: demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容