0

フェードアウトして音楽をオンにするこのイベントがあります

    $(bgMusic).on('timeupdate', function () {
    var vol = 1,
        interval = 250;
    if (bgMusic.volume == 1) {
        var intervalID = setInterval(function () {
            if (vol > 0) {
                vol -= 0.05;
                bgMusic.volume = vol.toFixed(2);
            } else {
                clearInterval(intervalID);
            }
        }, interval);
    }
});

私は今、音楽をオンにするために同じことを望んでいます。

私はこのような反対を作成しようとしました:

    $(bgMusic).off('timeupdate', function () {
    var vol = 0,
        interval = 250;
    if (bgMusic.volume == 0) {
        var intervalID = setInterval(function () {
            if (vol < 0) {
                vol += 0.05;
                bgMusic.volume = vol.toFixed(2);
            } else {
                clearInterval(intervalID);
            }
        }, interval);
    }
});

どこが間違っていますか?

4

3 に答える 3

2

変更した場合:

if (vol < 0) {

に:

if (vol < 1) {

...音量は、最大値の1に達するまで徐々に増加するはずです。したがって、必要な「フェードイン」効果が得られます。

于 2012-11-28T09:14:57.467 に答える
1

コードについてはよくわかりませんが、2番目の例ではoff関数を使用したくないと思います。

jQueryオフ:

説明:イベントハンドラーを削除します。

したがって、イベントに登録するので、イベントを削除するのではなく、をオンにして2番目のコードを試してください。

于 2012-11-28T09:23:40.993 に答える
0

あなたのvolは0なので、if条件の中には入り if (vol < 0) {... ません。

   if (vol < 1) {
            vol += 0.05;
            bgMusic.volume = vol.toFixed(2);
        } else {
            clearInterval(intervalID);
        }
于 2012-11-28T09:12:18.710 に答える