javascript - 不间断地为菜单的每个元素添加悬停时的声音

标签 javascript css

正如我所说,我创建了一个菜单,当我悬停它时会显示声音。我使用的代码在悬停菜单的另一个元素后播放声音之前有一个短暂的停顿。我怎样才能同时播放它,我的意思是,我怎样才能去除暂停效果?

$(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>

最佳答案

用 setTimeOut 或 jQuery .delay() 替换暂停。 300 毫秒超时示例:

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

我不知道新声音是否会抵消之前的声音。

此外,如评论所述,未经通知播放声音是一种糟糕的用户体验。您最好默认禁用它并询问用户,或者让他们通过复选框或其他方式启用它。

关于javascript - 不间断地为菜单的每个元素添加悬停时的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37400925/

相关文章:

javascript - 我可以将背景图像的一部分用作单独的 div 吗?

css - 并联3个按钮

javascript - 使用未知键过滤对象的最有效方法

javascript - 范围问题 - 在子实例中的 $emit 事件之后注入(inject)的父类未定义

javascript - ESLint:可以自动修复 "react/sort-prop-types"错误吗?

javascript - 在 css3 表单上使用 Javascript

javascript - Angularjs:当在ngRepeat中传入属性时如何在不使用隔离范围的情况下更新指令中的父范围

javascript - jquery mobile 1.4.5 设置面板高度可能吗?

html - 使用 Bootstrap 固定两个流体 div 之间的宽度 div

css - 将文本置于微调 Bootstrap 下