我正在开发一个脚本,只要将某个元素悬停在上面,它就会播放某个 html5<audio>
元素。<div>
我正在使用 jQuery 来检测悬停,并通过为音量设置动画来淡入/淡出音频。
这是我的代码:
<head>
<!-- unrelated code removed -->
<script type="text/javascript">
$(document).ready(function(){
//unrelated code removed
$("#pog").mouseenter(function() {
$("#poga").get(0).volume=0;
$("#poga").get(0).play();
$("#poga").animate({volume: 1}, 1000);
});
$("#pog").mouseleave(function() {
$("#poga").animate({volume: 0}, 1000, function() {
$("#poga").get(0).pause();
});
});
});
</script>
</head>
<body>
<audio preload loop controls id="poga">
<source src="audio/phantogram.mp3"></source>
<source src="audio/phantogram.ogg"></source>
Your browser isn't invited for super fun audio time.
</audio>
<div id="pog" class="band">Phantogram</div>
</body>
这是一个 jsFiddle:http: //jsfiddle.net/2eG6s/
问题是音量动画真的很不稳定。它每隔一段时间就会淡入淡出(我不知道确切的音量,但大概是 100%、60%、20%)。这真的很奇怪,并且只发生在 Windows 7 的 Firefox 21.0 和 22.0 中(Mac 版本的 Firefox 21.0 和 22.0 工作正常。)
帮助!