我写了一个脚本负责弹出窗口的出现和消失,我希望这个窗口能顺利出现和消失。为此,我设置了弹出窗口样式transition
,并opacity
在动画结束后通过setTimeout
将js
弹出窗口设置为窗口透明display: none
。但是负责关闭窗口的脚本,在弹出窗口区域外单击时,不能正常工作。我一打开窗口,这个脚本就会立即通过发出display: none
. 如果您只是运行此脚本而没有setTimeout
一切正常工作。
负责打开和关闭弹窗的脚本:
// отвечает за открытие окна при клике на кнопку
$("#myBtn").on('click', function () {
$("#myModal").css('display', 'block')
$("#myModal").css('opacity', '1')
});
// отвечает за закрытие окна при клике на крестик
$(".close").on('click', function () {
$("#myModal").css('opacity', '0');
setTimeout(function(){
$("#myModal").css('display', 'none');
}, 500);
});
// отвечает за закрытие окна при клике вне окна
$(document).mouseup(function (e) {
var div = $(".login-box");
if (!div.is(e.target) && div.has(e.target).length === 0) {
$("#myModal").css('opacity', '0');
setTimeout(function(){
$("#myModal").css('display', 'none');
}, 500);
}
});