本文僅提供思路的哦(*^▽^*),思路也很詳細哦

哈哈,突然詐尸沒想到吧。

中考" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 手把手教你用HTML/CSS/JS寫一個屬于自己的音樂播放器

手把手教你用HTML/CSS/JS寫一個屬于自己的音樂播放器

時間:2023-07-22 09:24:01 | 來源:網(wǎng)站運營

時間:2023-07-22 09:24:01 來源:網(wǎng)站運營

手把手教你用HTML/CSS/JS寫一個屬于自己的音樂播放器:溫馨提示:閱讀本篇文章需要一定的HTML/CSS/JS基礎(chǔ),沒有應(yīng)該也能看(看得看不懂就不知道了)

本文僅提供思路的哦(*^▽^*),思路也很詳細哦

哈哈,突然詐尸沒想到吧。

中考也完了,前幾天閑的沒事寫了一個音樂播放器,趁著閑暇時期給大家寫一寫制作過程和制作方法。

其實都是基本的HTML/CSS/JS,由于我代碼寫的較丑(不是謙虛,是真的丑),就不展示了,有需要可以私信。

這里只對一些較難的點稍作講解

先來幾張圖片吧:

右邊歌詞隨著歌曲變化而變化
能實現(xiàn)暫停/播放、上下首切換等基本功能

行了,那咱們開始:

首先,梳理一下我們要實現(xiàn)哪些功能:
1.對應(yīng)顯示歌曲列表和歌詞
2.單擊播放|暫停、上下首時實現(xiàn)對應(yīng)功能,歌詞也要對應(yīng)改變,上一首歌曲播完后自動切換下一首(核心)
3.讓標題,各部分,結(jié)尾顯示在相應(yīng)的地方
4.背景圖片根據(jù)屏幕大小等比例縮放顯示
5.顯示歌曲播放進度條,單擊進度條某一位置時,歌曲就播到此位置 //TODO
在碼代碼之前先整一下文件夾安排

我是這樣放文件夾的:

HTML在文件夾的根目錄下,其余(CSS、JS)在對應(yīng)子文件夾下
那么HTML中的代碼框架就是這樣:

<!DOCTYPE html><html> <head> <title>網(wǎng)頁標題</title> <link rel="stylesheet" type="text/css" href="css/css文件.css"> </head> <body> <!--功能實現(xiàn)--> <script src="js/js文件.js" type="text/javascript"></script> </body></html>下面咱們一個一個實現(xiàn)相應(yīng)功能。




壹、對應(yīng)顯示歌曲列表,歌詞和按鈕

這個就很簡單了,只需要<h2><p><img>等等標簽組合,配上幾個<div>

再加上一些換行符(<br>),空格(&nbsp;)等等

再稍用CSS稍加修飾(加邊框,加滾動條)就好了。

邊框我用的是:

color: white; -webkit-text-stroke: 2px black;border-color: bisque; /*陶坯黃*/border-width: 10px;border-radius: 5%;border-style: ridge; 滾動條就更簡單了,只需要

overflow-y:scroll;overflow-x:hidden;下面來進行第二步

貳、單擊播放|暫停、上下首時實現(xiàn)對應(yīng)功能,歌詞也要對應(yīng)改變,上一首歌曲播完后自動切換下一首 (核心)


一、單擊歌曲名稱時,播放對應(yīng)歌曲,顯示對應(yīng)歌詞

由于我們要實現(xiàn)單擊歌曲名稱顯示對應(yīng)歌詞,這時JS就派上用場了

所以前面的還得改一改,先將歌曲弄成一個list,再把幾首歌的歌詞弄成一個list,再創(chuàng)建一個 i 用來記錄當前播放歌曲

類似這樣:

var song_list=["song1","song2","song3"...];var lyrics_list=["lyrics1","lyrics2","lyrics3"...];var i = 0; //初始默認第一首歌曲溫馨提示:歌詞里面需要加<br>來實現(xiàn)換行哦

然后在HTML中,我們把歌曲加上一個鏈接<a>,以實現(xiàn)單擊時運行JS中的函數(shù)

這里先拿Fire這首歌舉例,設(shè)Fire是第一首歌,在song_list中的下標就為0,即i=0。

HTML中就應(yīng)該這樣寫:

<a href="#" onclick="fire()">Fire &nbsp;&nbsp;&nbsp;-Gavin DeGraw</a>然后在JS中,創(chuàng)建一個fire()函數(shù),實現(xiàn)單擊時改變歌詞,播放歌曲

在這里我定義了一個Filepath1和Filepath2,一個為./music/,另一個為.mp3

這樣在整文件時,文件路徑就直接是FilePath1 + song_list[i] + FilePath2了(i會變化)

播放的話就用一個<audio id="music"></audio>

然后JS中,定義全局變量obj = document.getElementById("audio");

前面的歌詞就不要了,直接用一個<div>+CSS定位

<div>中再將id設(shè)成lyrics

然后fire()函數(shù)就可以這樣寫:

function fire(){ i=0; var FilePath=FilePath1+song_list[i]+FilePath2; obj.setAttribute('src',FilePath); //這里實現(xiàn)播放音樂 document.getElementById("lyrics").innerHTML=lyrics_list[i];}至此,第一小步完成


二、單擊播放|暫停,上下首切換實現(xiàn)對應(yīng)功能,改變對應(yīng)歌詞,改變對應(yīng)圖片

這就用到前面的<img>標簽了,實現(xiàn)單擊時運行next()/previous()函數(shù),可以用<div>框起來

當然還有一個播放暫停鍵,實現(xiàn)單擊時改變圖片,停止/播放音樂,用id控制

<img src="./image/next.png" onmousedown="next()" alt="next"><img src="./image/stop.png" onmousedown="play()" alt="user" id="musicImg"><img src="./image/previous.png" onmousedown="previous()" alt="previous">基本原來就是:當單擊圖片時,如果音樂正在播放,那么暫停;如果暫停,那么播放

別忘了改變圖片:stop改為playing,playing改為stop

function play() { if (obj.paused) { //如果暫停 obj.play(); //播放音樂 document.getElementById('musicImg').src="./image/playing.png"; //改變圖片 }else{ //如果播放(如果不是暫停) audio.pause(); //暫停音樂 //audio.currentTime = 0; 這句可以讓音樂從頭播放 document.getElementById('musicImg').src="./image/stop.png"; //改變圖片 }}這樣play()函數(shù)就基本完成了

那么JS中的next()函數(shù)就需要先判斷這時的 i 是否小于song_list的長度

如果是,則 i+=1;實現(xiàn)下一首

如果不是,則 i=0;從頭播放

所以其實就是將 i 變一個數(shù),其余跟fire()函數(shù)中的一樣

我是這么寫的:

function next(){ if(i<2){ //這里我為了省事就直接寫了2,也就是三首 i+=1; } else{ i=0; } //后面一樣 var FilePath=FilePath1+song_list[i]+FilePath2; obj.setAttribute('src',FilePath); document.getElementById('musicImg').src="./image/playing.png"; //別忘了改變圖片哦 document.getElementById("lyrics").innerHTML=lyrics_list[i];}previous()也一樣,這里就不再細說了


三、上一首播完自動播放下一首

這就需要將<audio>稍稍變動一下了,在<audio>中加一個onended="next()"其實就可以

也就是字面意思,結(jié)束了,執(zhí)行前面寫過的next()函數(shù)

至此,最難部分結(jié)束

叁、讓標題,各部分,結(jié)尾顯示在相應(yīng)的地方

最難部分結(jié)束了,剩下的都很簡單了

只需要用class和id,再在CSS中對應(yīng)放置位置就行了,例如:

h2.lyrics{ position:relative; left:68%; top: 30%;}等等等等

肆、背景圖片根據(jù)屏幕大小等比例縮放顯示

最后一步是因為我換新電腦了,然后原來的背景圖片顯示不正常了才想出來的

在網(wǎng)上找的解決方法:

<body background="背景圖片路徑" style="background-repeat:no-repeat;background-size:100% 100%;background-attachment: fixed;"></body>挺管用,就直接拿了用了

伍、TODO

剩下的就可以發(fā)揮想象了,加個進度條,優(yōu)化一下程序,將一些相似的合并為一個函數(shù)...

這就該閱歷豐富的有經(jīng)驗的帥氣的(?)各位來完成了

結(jié)語:

也沒啥可說的,寫這個音樂播放器的起因其實就是酷狗VIP聽不了,啟動速度慢等諸多因素

順便也是用來練手的小項目,整個項目一共就250+行

寫這篇文章呢,也是為了加深印象吧,也是緩解一下中考帶來的緊張感







我是江曉錦翁,喜歡這篇文章別忘了點贊收藏,可以的話關(guān)注一下,謝謝大家!

---2021年6月29日

---By 江曉錦翁

關(guān)鍵詞:音樂,把手

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉