2016-05-23 13 views
0

Wie gesagt, ich habe ein Menü erstellt, das Sound anzeigt, wenn ich es schwebe. Der Code, den ich benutze, ist mit einer kurzen Pause verbunden, bevor der Ton wiedergegeben wird, nachdem ich einen anderen Menüpunkt im Menü gedrückt habe. Wie kann ich es gleichzeitig spielen, ich meine, wie kann ich den Pause-Effekt entfernen?Hinzufügen von Sound bei Hover zu jedem Menü ohne Pause

$(document).ready(function() { 
 
    var beepOne = $("#beep-one")[0]; 
 
    $("#menu-glowne a") 
 
    .mouseenter(function() { 
 
     beepOne.pause(); 
 
     beepOne.play(); 
 
    }); 
 

 
});
<audio id="beep-one" controls="controls" preload="auto"> 
 
    <source src="http://localhost/wp-content/uploads/2016/04/Click2-Sebastian-759472264.mp3"></source> 
 
    <source src="http://localhost/wp-content/uploads/2016/04/Click2-Sebastian-759472264.wav"></source> 
 
</audio> 
 

 
<ul id="menu-glowne"> 
 
    <li><a href="#">One</a> 
 
    </li> 
 
    <li><a href="#">Two</a> 
 
    </li> 
 
    <li><a href="#">Three</a> 
 
    </li> 
 
</ul>

+0

Entfernen Sie die Zeile, die es anhält 'beepOne.pause();'? Oder meinst du, du willst so etwas wie überlappende Sounds, zB neuen Sound für jeden Hover? –

+2

"* Ich habe ein Menü erstellt, das Ton anzeigt, wenn ich es schwebe *" - bitte, sagen Sie mir entweder, dass diese Seite vom Benutzer stummgeschaltet werden kann, oder sagen Sie mir, wie die URL ist. ... ernsthaft, es sei denn, dies ist auf Ihrer Website angekündigt, bevor Sie dieses Menü schweben, das ist ein Albtraum. –

+0

Web Audio API eignet sich am besten für diese Art von Aktion. Sie müssen einen Audio-Kontext und eine Pufferquelle erstellen, die eine sofortige Audio-Antwort ermöglichen. Überprüfen Sie hier: https://developer.apple.com/library/iad/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/PlayingandSynthesizingSounds/PlayingandSynthesizingSounds.html – KpTheConstructor

Antwort

0

Ersetzen Sie die Pause mit setTimeOut, oder vielleicht jQuery .delay(). Beispiel mit 300ms Timeout:

$(document).ready(function() { 
    var beepOne = $("#beep-one")[0]; 
    $("#menu-glowne a") 
    .mouseenter(function() { 
     setTimeout(function() { 
     beepOne.play(); 
     }, 300); 
    }); 
}); 

Ich weiß nicht, ob ein neuer Ton den vorherigen aufhebt.

Auch, wie gesagt, Sound unangemeldet zu spielen ist eine schlechte Benutzererfahrung. Sie sollten es besser standardmäßig deaktivieren und den Benutzer fragen, oder lassen Sie es über ein Kontrollkästchen oder etwas aktivieren.

+0

------------- --- – Ziegremic1988

Verwandte Themen