javascript - 我们可以在 jQuery 中暂停延迟吗?

标签 javascript jquery delay

我有一个按钮(带有 ID 继续),设置为显示:无。单击 Vimeo“播放”按钮后,该按钮会延迟 10 秒出现。

是否可以在点击视频中的“暂停”后暂停延迟,从而使计时器停止并通过再次点击“播放”再次启动计时器?

这是我到目前为止所拥有的(另请参阅 fiddle ):

<script>
    var iframe = document.querySelector('iframe');
    var player = new Vimeo.Player(iframe);

    player.on('play', function() {
  jQuery('#proceed').delay(10000).show(0);   
    });
</script>

最佳答案

您无法暂停 jQuery .delay()。但是如果您按时间间隔手动执行操作,则可以:

//prep
let
int,
secs = 10,
elapsed = 0
;

//on play, start/resume interval timer - when we get to 10, show button
player.on('play', () => {
    int = setInterval(() => {
        elapsed++;
        if (elapsed == secs) {
            jQuery('#proceed').show();
            clearInterval(int);
        }
    }, 1000);
});

//pause interval timer on pause
player.on('pause', () => {
    clearInterval(int);
});

如果您重新启动视频或将播放头移回 0 秒,您可能需要完全重置间隔。

关于javascript - 我们可以在 jQuery 中暂停延迟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730430/

相关文章:

javascript - 在 AngularJS View 中使用 Waypoints.js

javascript - 强制裁剪器始终为全宽或全高

javascript - Jquery不显示从db获取的值

jquery - Highcharts 饼图数据标签内部和外部

php - Laravel 5.3 队列作业不工作

javascript - 如何动态添加函数到队列中?

javascript - 如何在保存打印页面时为文件创建自定义文件名?

Javascript 和 jQuery 获取数据时出错

ios - Poptorootviewcontroller 延迟

Android:ProgressDialog 没有立即显示