0

我需要鼠标悬停事件的声音,我有这种方式,但它的问题来自鼠标悬停和声音播放之间的延迟,这是由于(我认为)代码上的嵌入声音处理。我想知道是否有更好的方法使用 js/jquery)。但不是我不想在这种特殊情况下实现的新 html5 音频标签。

ajax 调用加载文件,然后我在 mouseOver 上附加了一个名为 playSound() 的函数

function playSound()
{ 
  $setSound = document.getElementById("soundWrapper").innerHTML="<embed id='sound' src='href' type=audio/mpeg hidden=false autostart=true volume=12>";
}

然后到 mouseOut 事件一个名为 stopSound() 的函数

function stopSound()
{
  $stopSound = document.getElementById("soundWrapper").innerHTML="";
}

没什么花哨的,但它确实有效。所说的问题是播放声音的延迟。有没有办法播放/停止已经嵌入的声音,而不仅仅是每次都嵌入一个新的,或者类似的东西?

感谢您的时间和帮助。问候。

4

1 回答 1

1

如果您让 AJAX 将音频标签 ( http://www.w3schools.com/tags/tag_audio.asp ) 加载到所需的位置,则可以使用 JS 中的 .play() 方法播放它。然后它变得非常容易

$(YOURMOUSEOVERELEMENT).on('mouseover', function(){$('#sound').play()});

然后,如果您想在鼠标离开时停止音频:

$(YOURMOUSEOVERELEMENT).on('mouseout', function(){$('#sound').stop()});
于 2013-05-08T17:34:39.627 回答