2014-11-07 2 views
1

Я использую этот код, чтобы автоматически показывать свое всплывающее окно, и я хочу знать, как его автоматически закрыть через 5 секунд.Закрыть всплывающее окно после времени

$(document).ready(function() { 

    var id = '#dialog'; 

    //Get the screen height and width 
    var maskHeight = $(document).height(); 
    var maskWidth = $(window).width(); 

    //Set heigth and width to mask to fill up the whole screen 
    $('#mask').css({'width':maskWidth,'height':maskHeight}); 

    //transition effect  
    $('#mask').fadeIn(500); 
    $('#mask').fadeTo("slow",0.9); 

    //Get the window height and width 
    var winH = $(window).height(); 
    var winW = $(window).width(); 

    //Set the popup window to center 
    $(id).css('top', winH/2-$(id).height()/2); 
    $(id).css('left', winW/2-$(id).width()/2); 

    //transition effect 
    $(id).fadeIn(2000);  

    //if close button is clicked 
    $('.window .close').click(function (e) { 
     //Cancel the link behavior 
     e.preventDefault(); 

     $('#mask').hide(); 
     $('.window').hide(); 
    });  

    //if mask is clicked 
    $('#mask').click(function() { 
     $(this).hide(); 
     $('.window').hide(); 
    });  

}); 
+0

Пожалуйста, отметьте ответ правильный, если вы считаете, что он отвечает на ваш вопрос. Однако вы не обязаны никаких обязательств. – AaronS

ответ

0

Изменение пример из Mozilla's developer page on WindowTimers.setTimeout(), вызовите эту функцию из существующей document.ready функции:

delayedAlertClose(); 

Добавьте эти функции за пределами функции document.ready:

function delayedAlertClose() { 
    timeoutID = window.setTimeout(popupClose, 5000); 
} 

function popupClose() { 
    $('#mask').hide(); 
    $('.window').hide(); 
} 
+0

думает, что это работает :) –

+0

Рад слышать, как это работает. – AaronS

Смежные вопросы