有一个数组,假设每个元素里都有一个音频,都在播放,用 this.tempArr.splice(newIndex,0,...this.tempArr.splice(oldIndex,1)) 该方法交换数组内某两个元素位置,在windows,谷歌环境下,向前换位置的元素音频仍然继续播放,向后换位置的音频播放会被暂停,请问这是为啥呀,这个dome 用vue实现 代码如下
https://codesandbox.io/embed/78y3vr6oq?codemirror=1困扰小弟很久了,同样是谷歌,Windows,安卓就会有该问题,求大神指教原理!!

解决方案 »

  1.   


    数组更新后vue会操作dom,把上边的<audio>移动到下边来。
    对于谷歌浏览器,只要<audio>在文档中移动就会暂停播放。
      

  2.   


    可是这样上移也会暂停播放才对,为何这个dome 上移没事,下移就会暂停嫩
      

  3.   


    可是这样上移也会暂停播放才对,为何这个dome 上移没事,下移就会暂停嫩
    因为你是两个相邻的li元素交换位置。vue只要把上边的元素移动到下面就可以了,原本在下边的元素不用移动啊