我需要在鼠标悬停事件上发出声音,我有这种方式,但是它的问题来自鼠标悬停和播放声音之间的延迟,这是由于(我认为)在代码上嵌入了声音。我想知道是否有使用js / jquery的更好方法。但不是我不想在这种特殊情况下实现的新html5音频标签。
一个ajax调用会加载文件,然后将其附加到鼠标上一个名为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="";
}
没什么,但是它确实有效。据说问题是播放声音的延迟。有没有一种方法可以播放/停止已经嵌入的声音,而不仅仅是每次都嵌入一个新声音或类似的东西?
感谢您的时间和帮助。
问候。
最佳答案
如果您让AJAX将音频标签(http://www.w3schools.com/tags/tag_audio.asp)加载到所需的位置,则可以使用JS中的.play()方法播放它。然后变得非常容易
$(YOURMOUSEOVERELEMENT).on('mouseover', function(){$('#sound').play()});
然后,如果要在鼠标离开时停止音频:
$(YOURMOUSEOVERELEMENT).on('mouseout', function(){$('#sound').stop()});