一旦元素可见就触发的事件

时间:2017-05-04 05:36:58

标签: javascript jquery html css bootbox

我的项目中有多个bootbox对话框,我希望它们全部显示在屏幕的中心,我无法单独去计算每个框的高度,并在模态显示时将其定位在中心。有没有一种常见的方法来做到这一点。有没有办法在引导框可见时触发事件,我尝试了'DOMNodeInserted',但这给出了递归错误,也尝试了livequery但是这没有用。任何人都可以告诉我如何在公共点处显示对话框时触发事件。

jQuery(document).on('DOMNodeInserted', function(e) {
        if(jQuery(e.target).hasClass('modal')) {
            setTimeout(function(){
                if(jQuery(e.target).height()/2 > 1){
                    var topPos = ((jQuery(window).height() - 30)/2) - jQuery(e.target).find('.modal-dialog').height()/2;
                    jQuery('.modal-content').css('top', topPos);
                }
            },200);
        }
});

此致

NEHA

1 个答案:

答案 0 :(得分:0)

试用此代码

.on("shown.bs.modal", function(e) {
   alert("bootbox is visible");
});

DEMO

<强>更新

将bootbox对准中心

.on("shown.bs.modal", function(e) {
$('.modal-content').css({
    'transition':'margin-top 1s linear',
  'margin-top': function (){
        var w = $( window ).height();
        var b = $(".modal-dialog").height();
        var h = (w-b)/2;
        return h+"px";
    }
  });
});

DEMO