weebox弹出窗口不居中显示的解决方法

某些页面weeBox弹出窗口不居中显示,某些页面又居中显示,弹出窗口的居中算法也OK,这是为什么呢?

一、解决办法

作为对你负责的态度,必须先告知你决绝办法。

页面顶端加入以下代码

rush:xhtml;">

注意必须是这样的

rush:xhtml;"> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<%@ include file="/components/common/jscsslib.jsp"%>

而不能是这样的

rush:xhtml;"> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<%@ include file="/components/common/jscsslib.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

二、错误分析

jquery weeBox总结中介绍了weeBox的基本使用方法,那么对于weeBox弹出框不居中显示的原因,首先我们必须来先看看其setCenterPosition居中算法是否合理。

rush:js;"> this.setCenterPosition = function() { var wnd = $(window),doc = $(document),pTop = doc.scrollTop(),pLeft = doc.scrollLeft(),minTop = pTop;

pTop += (wnd.height() - self.dh.height()) / 2;
pTop = Math.max(pTop,minTop);
pLeft += (wnd.width() - self.dh.width()) / 2;
self.dh.css({top: pTop,left: pLeft});

}

发现算法还是非常ok的,不过请注意doc = $(document)。 前文我也告诉你了weeBox不居中显示解决办法,那么究竟原因关联在哪里呢?

声明必须是 HTML 文档的第一行,位于 标签之前。 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容

虽然这段话也并不能直接表明doctype和窗口居中之间的关系,但从解决办法中可以猜测到,如果不指定 ,那么窗口在计算document的宽高时就不是标准的像素值,这就间接的导致弹出窗口的x、y坐标没有定位准确。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...