首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让弹出窗口在3秒后消失

如何让弹出窗口在3秒后消失
EN

Stack Overflow用户
提问于 2017-08-18 15:00:14
回答 2查看 3.2K关注 0票数 0

我对此相当陌生,但谁能告诉我如何才能让这个弹出窗口在3秒内消失,而不是像现在这样点击X。

我试过把close_popup放在几乎任何地方,但它仍然不能工作。

代码语言:javascript
运行
复制
jQuery(document).ready(function($) {
    "use strict";

    var popup       = $('#yith-wacp-popup'),
        overlay     = popup.find( '.yith-wacp-overlay'),
        close       = popup.find( '.yith-wacp-close'),
        wrapper     = popup.find( '.yith-wacp-wrapper'),
        wrapper_w   = wrapper.width(),
        wrapper_h   = wrapper.height(),
        close_popup = function(){
            // remove class open
            popup.removeClass( 'open' );
            // after 2 sec remove content
            setTimeout(function () {
                popup.find('.yith-wacp-content').html('');
            }, 2000);
            $(document).trigger( 'yith_wacp_popup_after_closing' );
        },
        // center popup function
        center_popup = function () {
            var window_w = $(window).width(),
                window_h = $(window).height(),
                width    = ( ( window_w - 60 ) > wrapper_w ) ? wrapper_w : ( window_w - 60 ),
                height   = ( ( window_h - 120 ) > wrapper_h ) ? wrapper_h : ( window_h - 120 );

            wrapper.css({
                'left' : (( window_w/2 ) - ( width/2 )),
                'top' : (( window_h/2 ) - ( height/2 )),
                'width'     : width + 'px',
                'height'    : height + 'px'
            });
        };

    $( window ).on( 'resize', center_popup );

    $('body').on( 'added_to_cart', function( ev, fragmentsJSON, cart_hash, button ){

        if( typeof fragmentsJSON == 'undefined' )
            fragmentsJSON = $.parseJSON( sessionStorage.getItem( wc_cart_fragments_params.fragment_name ) );

        $.each( fragmentsJSON, function( key, value ) {

            if ( key == 'yith_wacp_message' ) {

                popup.find('.yith-wacp-content').html( value );

                // position popup
                center_popup();

                popup.addClass('open');

                popup.find( 'a.continue-shopping' ).on( 'click', function (e) {
                    e.preventDefault();
                    close_popup();                                   
                }); 



                return false;
            }
        });
     });


    // Close box by click close button
    close.on( 'click', function(ev){
        ev.preventDefault();        
        close_popup();
    });



});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-18 15:10:49

你有没有尝试过使用.delay function.Since jQuery1.4,你可以使用.delay函数。我给你提供了jsfiddle代码:

代码语言:javascript
运行
复制
$('#test').delay(3000).fadeOut();

代码语言:javascript
运行
复制
$(function() {
 $('#test').delay(3000).fadeOut();
});
代码语言:javascript
运行
复制
#test {
 width: 100px;
 height: 100px;
 background: #ffb;
 padding: 10px;
 border: 2px solid #999;
}
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">test</div>

票数 3
EN

Stack Overflow用户

发布于 2017-08-18 15:23:08

在if循环中,一旦pop_up打开,你能不能试一下这段代码?

代码语言:javascript
运行
复制
setTimeout(function () {
        close_popup();
    }, 3000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45750412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档