js事件,用于函数内部的when语句变为true

js event for when statement becomes true inside function

本文关键字:语句 when true 内部 事件 用于 函数 js      更新时间:2023-09-26

好的,我使用的是vimeoapi,它为我的函数提供了一些数据,其中包含我的视频播放百分比。我想用这个来查找视频何时结束,然后"重新开灯"。这是我的代码:

    function onplayProgress(data, id) {
$('#bottomtag').text(data.percent*100 + '% played');
    if ( data.percent == '1') {
$('body').animate({ backgroundColor: 'gray' }, 3000);
    }
}

#bottomtag只是为了调试,但它正确地显示了进度,最终达到100%并保持不变。所以我不明白为什么我的动画没有发生。我真的很密集吗?我觉得在语义上应该有"当"而不是"如果",但这并不存在。

============编辑============

正如泽塔所指出的,有一个完成事件,我可以使用。然而,我希望我的"灯"在99%的播放率下亮起,我也想知道为什么我的代码不起作用。我试过~

if ( data.percent == '0.990')

~但它仍然不起作用。关于该函数的调用,它被连接到Vimeo api,如下所示:

player.addEvent('playProgress', onplayProgress);

API提供finish事件。使用此选项可以检查您的视频是否已播放完毕。

编辑:99%后如何点亮灯光

然而,这有点棘手,仍然很容易实现:

function onplayProgress(data, id) {
    $('#bottomtag').text(data.percent*100 + '% played');
    if ( data.percent >= 0.990 && $('body').data("has-been-animated") !== true) {
        $('body').animate({ backgroundColor: 'gray' }, 3000);
        $('body').data("has-been-animated",true);
    }
}

如果data.percent = '1.00'的值(作为字符串),则您的If将失败,因为'1' != '1.00'