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?