JQuery KSC歌詞效果是一種前端技術,可以實現歌詞隨著音樂的播放而同步滾動,為用戶提供更好的音樂聽覺效果。下面讓我們來探討一下如何實現它:
var lyric = "關關雎鳩,\n在河之洲。\n窈窕淑女,\n君子好逑。"; var time = [0, 10, 20, 30]; // 表示歌曲每句歌詞開始的時間 // 定義一個變量,用于標記當前行數 var currentLine = -1; // 通過JQuery獲取歌詞容器 var lyricContainer = $("#lyric-container"); // 將歌詞字符串分割成數組 var lyricArr = lyric.split("\n"); // 創建歌詞標簽,并將歌詞添加到容器中 for (var i = 0; i< lyricArr.length; i++) { var lyricLine = $("" + lyricArr[i] + "
"); lyricContainer.append(lyricLine); } // 定義一個方法,用于更新歌詞的滾動效果 function updateLyric(timeStamp) { if (currentLine< 0) { currentLine = 0; } // 如果已經滾動到最后一行,就將當前行數重置為0 if (currentLine >= lyricArr.length) { currentLine = 0; return; // 返回,不再執行后面的代碼 } // 計算當前行的起始時間和結束時間 var start = time[currentLine]; var end = currentLine< time.length - 1 ? time[currentLine + 1] : Infinity; // 如果當前時間大于本行結束時間,就將當前行數加1 if (start<= timeStamp && timeStamp< end) { var lineHeight = lyricContainer.find("p:first-child").height(); var scrollTop = (currentLine - 1) * lineHeight; lyricContainer.animate({scrollTop: scrollTop}, 1000); currentLine++; } } // 監聽音樂播放事件,調用updateLyric方法更新歌詞效果 $("#audio").on("timeupdate", function() { var timeStamp = this.currentTime * 1000; updateLyric(timeStamp); });
通過以上代碼,我們可以實現歌曲播放時歌詞的同步滾動。使用JQuery KSC歌詞效果,再也不用擔心歌曲和歌詞的不同步了!
上一篇persion vue
下一篇per vue