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

不确定您的代码,但我认为您不想在第二个示例中使用 off 函数。

jQuery关闭:

描述:删除事件处理程序。

因此,请尝试使用 on to 您的第二个代码,因为您想注册该事件,而不是删除它。

于 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 回答