MouseOver音效,比这更好的方法

时间:2013-05-08 17:14:41

标签: javascript jquery audio mouseover

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

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

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="";
}

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

$(YOURMOUSEOVERELEMENT).on('mouseout', function(){$('#sound').stop()});