使用IE和Firefox的JavaScript从头开始构建模式对话框

使用IE和Firefox的JavaScript从头开始构建模式对话框,javascript,jquery,Javascript,Jquery,我正在尝试用JavaScript构建一个模式对话框。我有它在Firefox中工作,但没有IE和一些类似的代码 $(window).bind('scroll resize', function (e) { var $this = $('.popup'); var d = document; var rootElm = (d.documentelement && d.compatMode == 'CSS1Compat') ? d.documenteleme

我正在尝试用JavaScript构建一个模式对话框。我有它在Firefox中工作,但没有IE和一些类似的代码

$(window).bind('scroll resize', function (e) {

    var $this = $('.popup');

    var d = document;
    var rootElm = (d.documentelement && d.compatMode == 'CSS1Compat') ? d.documentelement : d.body;
    var vpw = self.innerWidth ? self.innerWidth : rootElm.clientWidth; // viewport width 
    var vph = self.innerHeight ? self.innerHeight : rootElm.clientHeight; // viewport height 

    $this.css({
        position: 'fixed',
        left: ((vpw - 100) / 2) + 'px',
        top: (rootElm.scrollTop + (vph - 100) / 2) + 'px'
    }).show();

});
这在FireFox中非常有效,但在IE中却不行(不针对ie6)

问题

IE中的初始位置很好,但当我调整大小时,div不会移回视图端口的中间。我确认调整大小和滚动都被触发了,但是IE中的位置被关闭了

演示


问题在于视口的高度和宽度。。。使用了jquery的东西,效果很好

 $(window).bind('scroll resize', function (e) {

        var $this = $('.popup');

        var d = document;
        var rootElm = (d.documentelement && d.compatMode == 'CSS1Compat') ? d.documentelement : d.body;
        var vpw = $(window).width(); // viewport width
        var vph = $(window).height(); // viewport height

        $this.css({
            position: 'fixed',
            left: ((vpw - 100) / 2) + 'px',
            top: (rootElm.scrollTop + (vph - 100) / 2) + 'px'
        }).show();

    });

问题是视口的高度和宽度。。。使用了jquery的东西,效果很好

 $(window).bind('scroll resize', function (e) {

        var $this = $('.popup');

        var d = document;
        var rootElm = (d.documentelement && d.compatMode == 'CSS1Compat') ? d.documentelement : d.body;
        var vpw = $(window).width(); // viewport width
        var vph = $(window).height(); // viewport height

        $this.css({
            position: 'fixed',
            left: ((vpw - 100) / 2) + 'px',
            top: (rootElm.scrollTop + (vph - 100) / 2) + 'px'
        }).show();

    });

为什么需要从头开始构建?您使用的jQuery和jQuery UI已经有一个模式对话框,可以添加到您的项目中?那么IE的错误/不受欢迎的行为是什么呢?@john-jQuery UI非常具有侵入性@超现实主义-调整大小不会将图像垂直移动到正确的位置。为什么需要从头开始构建?您使用的jQuery和jQuery UI已经有一个模式对话框,可以添加到您的项目中?那么IE的错误/不受欢迎的行为是什么呢?@john-jQuery UI非常具有侵入性@超现实-调整大小不会将图像垂直移动到正确的位置。