繁体   English   中英

仅当元素未与之交互时,才如何为其设置动画?

[英]How do I animate an element only if it has not been interacted with?

我想创建一个弹出页面,当页面加载时可见,但是如果用户不与之交互,则它将在设置的时间后滑出屏幕。

这将使用jQuery,但我找到了一个示例,但无法重新创建它。

这是示例网站: http : //www.greatwolf.com/

如果未与他们互动,您会看到他们的“预订您的住宿”弹出窗口将在几秒钟后关闭。 但是如果您在弹出窗口中选择一个日期,它将不会关闭。

我当然知道在延迟的时间后如何制作动画。

 $('.side-res-widget-trigger').delay(3000).animate({
        left: parseInt($('.side-res-widget-trigger').css('left'),10) == 0 ?
            -$('.side-res-widget-trigger').outerWidth() :
            0
    });
    $('.side-res-widget').delay(3000).animate({
        left: parseInt($('.side-res-widget').css('left'),10) == 0 ?
            -$('.side-res-widget').outerWidth() :
            0
    });

但是不能确定如何仅在弹出窗口内部没有任何交互时触发此操作。

您可以创建一个setTimeout()事件和一个控制变量以查看是否被“交互”。 否则, setTimeout将正常运行。 就像是:

var interacted = false;

$('#myPopup').on("click", function() {
    interacted = true;
});

setTimeout(function() {
    if(!interacted) {
        //Hide process
    }
}, 3000);

'#myPopup'是您的弹出元素的情况下,任何交互都会触发click事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM