javascript - 重置先前选择的链接背景颜色

标签 javascript

嗨,我有一个歌曲播放列表,并在播放器中使用 JavaScript 将正在播放的歌曲的背景色设置为浅绿色。我知道我可以使用 a:focus 但是,如果用户在播放歌曲时选择歌词,歌曲将继续播放,但它会失去焦点,因此背景颜色恢复为原始颜色。我需要一种方法,当歌曲不再播放或选择另一首歌曲时,使用 javascript 将歌曲的颜色更改回原来的颜色。代码如下。

<!-- Video Player Script -->


var video_playlist = document.getElementById("video_player");
var links = video_playlist.getElementsByTagName('a');
for (var i=0; i<links.length; i++) {                 
    links[i].onclick = handler;                       
};

function handler(e) {                               
    e.preventDefault();     
    videotarget = this.getAttribute("href");
    filename = videotarget.substr(0, videotarget.lastIndexOf('.')) || videotarget;
    video = document.querySelector("#video_player video");
    source = document.querySelectorAll("#video_player video source");
    source[0].src = filename + ".mp3";
    video.load();   
    video.play();   
    this.style.background = "#AAFF8D";                  
};      

最佳答案

如果这是 html5 视频,则使用 onend 属性来检测视频何时完成播放:

video.onended = function(e) {
  // change background color here
};

关于javascript - 重置先前选择的链接背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29811327/

相关文章:

javascript - 以下列方式使用 eval() 有什么风险或责任

javascript - 像图像一样缩放 div

javascript - React : TypeError: items. map 不是函数

javascript - 将值传递给angular js中的自定义指令

javascript - Firebase http 函数在 http 请求库返回数据之前完成

java - Struts:从请求范围获取ElementByID (Javascript)

javascript - 如何过滤 ListView 中的内部子元素以及使用 Jquery 在移动应用程序中将字母滚动条添加到 ListView 的任何简单方法

javascript - 如何通过滚动捕捉使拖动滚动工作顺利进行

javascript - 将two.js 与dat.GUI 链接

javascript - HTML 视频的状态在一段时间后变为待处理