欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于better-scroll 實現(xiàn)歌詞聯(lián)動功能的代碼

 更新時間:2020年05月07日 09:36:13   作者:linong  
BetterScroll 是一款重點解決移動端(已支持 PC)各種滾動場景需求的插件,BetterScroll 是使用純 JavaScript 實現(xiàn)的,這意味著它是無依賴的。本文基于better-scroll 實現(xiàn)歌詞聯(lián)動功能,感興趣的朋友跟隨小編一起看看吧

BetterScroll 是一款重點解決移動端(已支持 PC)各種滾動場景需求的插件。它的核心是借鑒的 iscroll 的實現(xiàn),它的 API 設計基本兼容 iscroll,在 iscroll 的基礎上又擴展了一些 feature 以及做了一些性能優(yōu)化。

BetterScroll 是使用純 JavaScript 實現(xiàn)的,這意味著它是無依賴的。

正文

前段時間公司要做個歌詞標記功能,標記副歌、前奏、無效內容等等。找了找沒有找到類似的實現(xiàn),只能自己實現(xiàn)一把。

功能已經上線了,這里記錄一下用到的相關內容。

需求

  • 可以拖動進度條修改播放進度
  • 可以拖動歌詞來修改播放進度
  • 播放時滾動歌詞
  • 標記功能

測試地址:https://www.lilnong.top/stati ...

實現(xiàn)

技術棧是 Vue + vant + better-scroll
開始調研的時候使用 vantPicker 來實現(xiàn)了一下,發(fā)現(xiàn)滾動歌詞的時候沒有動畫,很難受改用了 better-scroll。

better-scroll

better-scroll 文檔

betterScrollList = new BScroll(wrapper,{
 probeType: 2, // 因為默認是不會調用 scroll 回調的,所以需要設置
 swipeTime: 300
})
betterScrollList.on('scroll', ()=>{
 //暫停歌曲
 //獲取當前用戶拖動的歌詞,計算規(guī)則如下
  // 當前y / 最大y * 歌詞行數(shù)
  // 當前y就是滾動的了多少
  // 最大y可以理解為高度
  // 上面計算出來就是進度比例。然后換算到行數(shù)就ok
})
betterScrollList.on('scrollEnd', ()=>{
 // 這里是校準到拖動歌詞的位置
 // 播放歌曲
})

probeType

描述
0 不派發(fā)
1 會非實時(屏幕滑動超過一定時間后)派發(fā)scroll 事件
2 會在屏幕滑動的過程中實時的派發(fā) scroll 事件
3 不僅在屏幕滑動的過程中,而且在 momentum 滾動動畫運行過程中實時派發(fā) scroll 事件

解析歌詞

這里我是基于lyric-parser 這個庫實現(xiàn)的。

因為我在網(wǎng)上找了幾個庫他們都使用的這個,所以我也就沒找我們公司內部的解析代碼。

lrc 歌詞規(guī)則: [分:秒.毫秒]歌詞。

聯(lián)動

修改播放進度

這里我是直接改的 currentTime 來實現(xiàn)。

監(jiān)聽播放進度

這里我是監(jiān)聽 timeupdate 回調,然后獲取 currentTime,再去遍歷歌詞中對應時間的歌詞,觸發(fā)滾動效果。

修改音量

安卓是好的。ios 不行,然后被砍了。
這里是通過 volume 來操作。

總結

到此這篇關于基于better-scroll 實現(xiàn)歌詞聯(lián)動功能的代碼的文章就介紹到這了,更多相關better-scroll 實現(xiàn)歌詞聯(lián)動內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 在vue中讀取本地Json文件的方法

    在vue中讀取本地Json文件的方法

    今天小編就為大家分享一篇在vue中讀取本地Json文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue實現(xiàn)頁面自適應的常用4種方法

    vue實現(xiàn)頁面自適應的常用4種方法

    前端頁面自適應有很多方法可以實現(xiàn),本文小編將為大家詳細介紹四種常用的方法,并提供相應的代碼示例,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-10-10
  • Vue數(shù)據(jù)雙向綁定的實現(xiàn)方式講解

    Vue數(shù)據(jù)雙向綁定的實現(xiàn)方式講解

    Vue數(shù)據(jù)雙向綁定原理:Vue內部通過Object.defineProperty方法屬性攔截的方式,把data對象里每個數(shù)據(jù)的讀寫轉化成getter/setter,當數(shù)據(jù)變化時通知視圖更新
    2022-08-08
  • vue中的el-tree @node-click傳自定義參數(shù)

    vue中的el-tree @node-click傳自定義參數(shù)

    這篇文章主要介紹了vue中的el-tree @node-click傳自定義參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • ant-design-vue中的table自定義格式渲染解析

    ant-design-vue中的table自定義格式渲染解析

    這篇文章主要介紹了ant-design-vue中的table自定義格式渲染,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解Vue生命周期的示例

    詳解Vue生命周期的示例

    本篇文章主要介紹了詳解Vue生命周期的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • elementUI動態(tài)嵌套el-form表單校驗舉例詳解

    elementUI動態(tài)嵌套el-form表單校驗舉例詳解

    最近工作遇到個需求,表單可以進行增加刪除操作,需要進行表單校驗,這篇文章主要給大家介紹了關于elementUI動態(tài)嵌套el-form表單校驗的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • VUE安裝使用教程詳解

    VUE安裝使用教程詳解

    這篇文章主要介紹了安裝使用VUE的教程,本文給大家提到了遇到的問題原因分析及解決方法,需要的朋友可以參考下
    2019-06-06
  • vue中Axios的封裝與API接口的管理詳解

    vue中Axios的封裝與API接口的管理詳解

    這篇文章主要給大家介紹了關于vue中Axios的封裝與API接口的管理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • Vue.js開發(fā)環(huán)境快速搭建教程

    Vue.js開發(fā)環(huán)境快速搭建教程

    這篇文章主要為大家詳細介紹了Vue.js開發(fā)環(huán)境快速搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論