2010-06-10 163 views
3

通过JavaScript在鼠标悬停播放音频文件的最佳解决方案是什么?当鼠标离开链接时停止它。 jQuery可用。悬停播放音频文件(并停止播放鼠标)

<a href="/test.mp3" class="play">play</a> 
+3

作为人类的一员,我请求你至少把它变成一个'click'事件。 – 2010-06-10 11:44:50

+0

作为清晰(HT)标记语言的粉丝,我希望将此链接保留为音频文件。添加一点JS的幻想...... – powtac 2010-06-10 11:54:02

+0

我认为你错过了我的观点,作为大多数用户,当简单地在页面上移动鼠标时,用户不希望有一个良好的启动,它*应该是一个点击,而不是一个悬停。为什么你认为高容量的基于Flash的广告正在消失,并且广告/闪光拦截器的使用率正在飞涨?许多相同的推理适用于这里...只是你应该考虑的事情。 – 2010-06-10 12:12:55

回答

1
+0

SoundManager有点沉重。没有其他建议? – powtac 2010-06-10 12:36:41

+0

我已经看到这个游戏在不同的游戏开发事件+1中很好用,它的工作原理 - 我不知道其他的选择。如果有一些简约的解决方案,我也很感兴趣。 – hhh 2014-10-23 01:08:00

1
<script type="text/javascript"> 
    (function($) { 
     $(function(){ 
       $("a.play").each(function() { 
        $(this).mouseover(function(){ 
         var mp3file = $(this).attr('href'); 
         // asign this mp3file to the player and play it 
        }).mouseout(function() { 
         // tell the mp3 player to stop 
        }); 
       }); 
     }); 
    })(jQuery); 
</script> 

您可以使用unomi建议玩家。伟大的作品

+2

2这里有一个'.hover()'函数,你应该检查一下,绑定时从不需要'.each()',只需调用'$(“a.play”)。click()'例如,它会绑定该选择器的每个匹配:) – 2010-06-10 12:10:36

+0

感谢尼克,我忘了悬停! – powtac 2010-06-10 12:37:47

+0

@NickCraver是否可以将您的替代解决方案作为答案?我不喜欢你的评论后回答者没有改进他的答案。它会使这个写作更高质量。 – hhh 2014-10-23 01:13:20

3
<audio id="mysound" src="mysound.wav"></audio> 
<button onmouseover="document.getElementById('mysound').play()" onmouseout="document.getElementById('mysound').pause()">Hover me!</button>