完成简单的音乐导航

201 阅读1分钟

效果

  • 鼠标进入,可以播放音乐,同时黄色块出现,鼠标离开,黄色块消失
  • 按键播放音乐

步骤

  • 为所有li元素绑定鼠标进入事件,在事件处理函数中

    • 让当前li元素的子元素出现
    • 播放对应索引位置的音乐
 //查询元素
      let lis = document.querySelectorAll('li')
      let audios = document.querySelectorAll('audio')
​
      // 循环遍历li,添加鼠标移入事件
      lis.forEach(function (ele, index) {
        ele.addEventListener('mouseenter', function () {
          // 让span出现
          ele.children[1].style.top = 0
          // 默认情况下,播放完上一个音乐才会播放下一个音乐,我们可以通过加 load 强制加载新的音乐播放
          // 同时播放音乐
          // play():播放音乐
          audios[index].load()
​
          audios[index].play()
        })
​
        // 移出事件
        ele.addEventListener('mouseleave', function () {
          ele.children[1].style.top = '60px'
        })
      })
​
      // 添加键盘按键事件
​
      document.addEventListener('keydown', function (e) {
        if (e.key >= 1 && e.key <= 7) {
          // 触发指定索引位置的li元素的mouseenter事件
          // 创建一个事件对象
          let ev = document.createEvent('HtmlEvents')
          // 初始化事件,指定事件类型
          ev.initEvent('mouseenter', true, true)
          // 使用元素触发事件
          lis[e.key - 1].dispatchEvent(ev)
        }
      })
​
      document.addEventListener('keyup', function (e) {
        if (e.key >= 1 && e.key <= 7) {
          // 触发指定索引位置的li元素的mouseenter事件
​
          lis[e.key - 1].children[1].style.top = '60px'
        }
      })

\