2019/0306/Javascript musicplay_really_end
JSmusicplay
跑馬燈顯示即時歌曲名稱
function ChangeMusic(index) {
song.src = music.options[index].value;
music.options[index].selected = true;
audio.load();
if (info.innerText == "音樂播放中")
audio.play();
//PlayMusic();
}
function ShowStatus(status) {
var strStatus = "";
switch (status) {
case 1:
strStatus = "音樂播放中";
break;
case 2:
strStatus = "音樂暫停";
break;
case 3:
strStatus = "音樂停止";
break;
}
info.innerText = strStatus;
}每個標籤都有 title 屬性
inner text ( tag 夾著的中間值 )
將 inner text 餵給 title
不知道為啥不是新增變數
將原本撥放中換歌繼續撥放的判別文本值改為判別按鈕狀態
不同瀏覽器相容性問題
細項設定不同,造成問題
瀏覽器偵測 key 兩種版本的代碼
每個瀏覽器使用的核心不一樣
瀏覽器其實是雲端程式 伺服器端只是一個介面,而每個使用者都只是agent
以下範例為操作input這個動作的時候才作判別而不是瀏覽器一執行就做判別
歌本撥放清單與列表清單功能
拖拉 html5 方法 drag and drop
目的區塊 來源區塊
什麼物件都可以
程式結構調整將歌串移至歌本清單
最好利用物件擁有的屬性放東西 將value改為title
歌本 CSS
overflow:auto 自動卷軸 ( 上面歌單列表超出div
cursor:copy 自訂鼠標
清單交換功能
並把原程式結構對應的 value 與innertext做更改
動操作 文件物件模型的樹 結點跟結點之間去更動
抓div到另一個div 且沒設id
可以用數第幾個
一抓觸發ondragstart 放下時觸發ondragover
ev.preventDefault(); 停止物件預設行為
拜訪結點 移動結點 複製 刪除結點
draggable=true 必須擁有此屬性才能被搬動
問題來了如何餵一首首的歌曲事件監聽器
event事件的物件
target 觸發
event.target.id 觸發這個事件的id
氣泡式

拖移功能
dragover 事件
drop 事件
左拖到右
右拖到左
更新自選歌單
索引值改變所以要倒過來寫
因為迴圈是一次刪一首
從前面刪第一首刪掉第二首會變第一首所以第二次刪是刪第三首
bug 修正 audio 裡面還是在撥第一首歌
呼叫 song change ("a") 寫成獨立函數的好處需要做那件事情時呼叫
改掉audio預設屬性
細節修正
歌本按鈕 隱藏 顯示 歌本 控制旗標
display:none 不留空位
vsiblte 不顯示留空位
title="hide" 點一下 title 改成 show 判斷是show or hide
css 標籤 固定藉由改變class title 的值 造成css樣態改變
細節修正
樣式表&JS檔案抽離
關注點分離
IIS部屬




家用版跟伺服器版差別就是服務的網站數量



設定路徑
進階設定 實體路徑


Last updated
Was this helpful?