0

私は効果音を使ってちょっとした昔ながらのウェブサイトを作っています。これで効果音を実行できるようになりましたが、少し問題が発生しています。ボタンですべてをオンまたはオフにする方法を知りたいです。ページをロードするときにデフォルトでオンにしたいのですが、オンまたはオフに切り替えることができます。

サイトに入ったときやリンクなどをクリックしたときに再生するところまで行きました。しかし、今はそれらすべてをミュートしたいと思っています。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 回目のマウスオーバー) で再生されます。

4

2 に答える 2

1

おっしゃる通り、これでうまくいくと思います。あなたは物事を考えすぎていたようですが、それは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();
  });

});

それがどうなるか教えてください。

于 2013-08-22T19:54:41.017 に答える
0

Simey、あなたはちょうど私が必要としていた情報を私に提供してくれました:)、どうもありがとうございました!

私が変更しなければならなかった唯一のことは、

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

私はそれを次のように変更しました:

galleryleft.pause;

しかし、残りの部分については、これは私のスクリプトよりもはるかに理にかなっています。確かに、私は物事を複雑にしすぎていました。私はあなたにビールを借りている...

于 2013-08-23T10:01:17.453 に答える