在网站上打开和关闭声音

时间:2013-08-22 11:31:45

标签: javascript jquery audio switch-statement

我正在制作一个带有声音效果的老式网站。现在我得到了声音效果,但我遇到了一些问题。我想知道如何用一个按钮打开和关闭它们。我想在加载页面时默认打开它们,然后你可以打开或关闭它。

当你进入网站并点击链接等时,我就开始玩它们。但现在我想把它们全部静音。 Jquery .on和.off对我不起作用......我想我在做一些非常错误的事情,我对javascript不是那么精明:

var siteAudio = function () {
 if ( $(".turn-off").hasClass("turnedon") ) {   


var galleryleft = $("#galleryleft")[0];
$(".arrowleft").click(function() {
galleryleft.play();
});

}
else {
var galleryleft = $("#galleryleft")[0];
$(".arrowleft").click(function() {
galleryleft.pause();
});

}


$( ".turn-off" ).click(function() {
$('.turn-off').toggleClass('turnedon');
$('.turn-off').toggleClass('turnedoff');
$(siteAudio).off();
});

window.onload = function () {
$(siteAudio).on();
}

现在这个工作正常,但声音应该完全关闭,而是在第4次点击时播放(或者在第4次鼠标悬停时播放)。 我希望有人能说出我在这里做错了什么

2 个答案:

答案 0 :(得分:1)

tink 这将根据您所说的内容发挥作用。看起来你是在过度思考,这在jQuery / javascript中很常见:)

$(document).ready( function() {
  var galleryleft = $("#galleryleft")[0];
  var gallerySoundOn = true;


  $( ".turn-off" ).click( function(e) {
    if( gallerySoundOn ) { gallerySoundOn = false; }
    else { gallerySoundOn = true; }
    e.preventDefault();
  });

  $(".arrowleft").click( function(e) {
    if( gallerySoundOn ) { galleryleft.play(); }
    else { galleryleft.play(); galleryLeft.currentTime = 0; }
    e.preventDefault();
  });

});

让我知道它是怎么回事。

答案 1 :(得分:0)

Simey,你刚刚向我提供了我需要的信息:),非常感谢你!

我唯一需要改变的是

galleryleft.play(); galleryLeft.currentTime = 0;

我将其改为:

galleryleft.pause;

但是对于其他人而言,这比我的剧本更有意义。的确,我过于复杂。我欠你一杯啤酒......