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

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

一、解决办法

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

在页面顶端加入以下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

注意必须是这样的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/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"%>

<head>

而不能是这样的

<html xmlns="http://www.w3.org/1999/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">
<head>

二、错误分析

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

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坐标没有定位准确。

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

(0)

相关推荐

  • 全面解析Bootstrap弹窗的实现方法

    一. 结构分析  Bootstrap框架中的模态弹出框,分别运用了"modal"."modal-dialog"和"modal-content"样式,而弹出窗真正的内容都放置在"modal-content"中,其主要又包括三个部分: ☑ 弹出框头部,一般使用"modal-header"表示,主要包括标题和关闭按钮 ☑ 弹出框主体,一般使用"modal-body"表示,弹出框的主要内容 ☑

  • BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法

    弹出框(Popover)与工具提示(Tooltip)类似,提供了一个扩展的视图.如需激活弹出框,用户只需把鼠标悬停在元素上即可.弹出框的内容完全可使用 Bootstrap 数据 API(Bootstrap Data API)来填充.该方法依赖于工具提示(tooltip). 1 设置延时, 超过该延时未移入弹窗则弹窗隐藏 Tooltip.prototype.init = function{中的 var triggers = this.options.trigger.split(' ')后面加上 /

  • Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案

    最近一直在使用Bootstrap,遇到了很多问题,通过google也明白了很多,学习了很多.针对'Bootstrap modal 多弹窗之叠加显示不出弹窗问题'说一下自己的解决办法. 当然还是官方提出的'最好不要多个modal叠加很容易出现很难解决的前端组件问题' 示例代码: <div class='bs-example-modal-lg fade modal' data='0' id='feature-mapping-dialog-form' style='display:none'> &l

  • Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

    使用弹窗在网页中显示短信息还行,虽然不那么地友好.然而,弹窗对于如同网站服务条款的长信息就无能为力的了.这是需要使用一个叫模态框modal的东西,并且在模态框里面嵌入一个多行文本框textarea. 这个东西,如果要手工写JavaScript代码就太难做了,但是使用Bootstrap来编写就简单起来. 一.基本目标  有一个网页,网页上面有一个超级链接,一个按钮: 点击他们都会打开一个如下所示的模态框,这个模态框,点击右上角的X按钮与下方的确定都会关闭. 二.制作过程  1.因为需要使用Boot

  • BootStrap modal模态弹窗使用小结

    模态弹窗 触发元素基本结构: 复制代码 代码如下: <button class="btn btn-success" data-target="#modal" data-toggle="modal">modal</button> 内容元素基本结构: <div class="modal fade" id="modal"> <div class="modal-d

  • Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题

    上篇提到的' Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题' 我总结了下,对于modal多窗口叠加引起的遮罩,滚动条,无法弹出窗口的问题,查看源代码,我总结了一种方法可以一次性解决所有这些问题,而不影响原有modal功能,并且实现了多窗口叠加. 对于多窗口,如果我们将第二个,乃至第三个,第四个modal的根节点,移植到body下面,就不会出现了以上问题. 具体该如何操作,请看以下代码: 通常我们遇到多弹窗的问题,是出现在modal套modal中,也就是: <div class='

  • bootstrap实现弹窗和拖动效果

    有时开发一些特效,自己感觉挺爽的,像操作自己电脑一样操作你的网页,这里就介绍一个使用bootstrap的一点多窗口和拖动效果吧! 这里,我们不使用静态打开的的方式,low...,1.添加一个a链接 触发,打开按钮;2.编写动态打开js脚本; 3.编写modal中间内容;4.添加拖动效果;5.打开多个modal , 调用dragModal(new Array('modalId1','modalId2')); 1.添加一个a链接 触发,打开按钮: <a href="javascript:;&q

  • Bootstrap modal 多弹窗之叠加关闭阴影遮罩问题的解决方法

    上篇我提到的'多弹窗之叠加显示不出弹窗问题' 这里也会遇到一次性关闭所有modal引起阴影遮罩的问题,也就是所有modal都关闭了,但是主页面仍然被阴影遮罩. 这个问题从哪来的,是因为modal叠加,我们点击窗口之外的空白部分,一次性关闭所有model,但是modal自己生成的'.modal-backdrop'只关闭了一个,其余的依然存在, 导致阴影遮罩. 这里的解决办法是 1.第一种禁用modal 点击空白自动关闭的功能. tempModal.modal({ backdrop:"static&

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

    某些页面weebox弹出窗口不居中显示,某些页面又居中显示,弹出窗口的居中算法也OK,这是为什么呢? 一.解决办法 作为对你负责的态度,必须先告知你决绝办法. 在页面顶端加入以下代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 注意必须是这样的 <!

  • 让js弹出窗口居前显示的实现方法

    具体步骤: 方法一:弹出窗口<body>里加上代码:onblur="self.focus()":<body onblur="self.focus()"> 方法二:用showModalDialog方法建立模式对话框,它的参数说明如表1.5.2所示.<script>   function topwin(){   window.showModalDialog(http://www.jb1.net,"","d

  • ie9后浏览器fckeditor无法上传图片、弹出浮层内容不显示的解决方法

    第一种方法: 复制代码 代码如下: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> 讓IE9變成IE8在跑 第二种方法: 升级到IE9后,fckeditor在IE9里的弹出浮动层会出现bug,里面的内容不会出现.所以无论是想在页面编辑器里粘贴内容,还是上传图片等凡是需要弹出窗口操作的东西都会有问题,想要进行其它的操作也只能重新刷新页面.原因是IE9不支持var $=documen

  • Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)

    最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判断键盘是否弹出,若弹出,则把它隐藏. 网上一搜,发现Android并没有直接提供软键盘的弹出与隐藏判断,一些解决方案诸如判断父控件的高度或者判断 if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT

  • 关于layui 弹出层一闪而过就消失的解决方法

    听说是因为 JQuery 的版本冲突问题,在找到具体问题之前,先在代码里加一个 return false 解决问题: <button class="layui-btn" lay-submit lay-filter="test" οnclick="return false;">立即提交</button> js: //监听提交 form.on('submit(test)', function(data) { console.l

  • javascript 弹出窗口中是否显示地址栏的实现代码

    Question : 在IE 7中弹出页面后,总是会显示地址栏,而该地址栏是不希望在程序中出现的,况且也影响美观.而在IE6中就不会出现地址栏. Solution: 工具-->Internet 选项-->安全-->自定义级别-->允许网站打开没有地址栏或状态栏的窗口-->允许 这样设置了IE7后就不会在弹出窗口中出现地址栏了.IE7以及后续版本默认不可以打开不带地址栏的窗口,这样是为了安全起见. javascript的window.open也可以用来弹出新页面,而且通过设置参

  • android虚拟键盘弹出遮挡登陆按钮问题的解决方法

    Android虚拟键盘的弹起会遮挡住部分ui,虽然通过在清单文件中设置,可以随着虚拟键盘的弹出,布局往上推,但是面对登陆界面时,并没有太大的作用,这样就会导致用户体验不好:开发中既然出现了就的解决:先说先解决的思路:获取到屏幕的高度.虚拟键盘的高度,布局的高度,用屏幕的高度减去布局的高度,用高度差和虚拟键盘的高度进行对比:代码实现如下: private LinearLayout logo_layout; private ImageView iv_logo; private int sh; pri

  • Android输入法弹出时覆盖输入框问题的解决方法

    当一个activity中含有输入框时,我们点击输入框,会弹出输入法界面,整个界面的变化效果与manifest中对应设置的android:windowSoftInputMode属性有关,一般可以设置的值如下, <activity android:windowSoftInputMode=[ "stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden&q

  • 使用Python爬取弹出窗口信息的实例

    此文仅当学习笔记用. 这个实例是在Python环境下如何爬取弹出窗口的内容,有些时候我们要在页面中通过点击,然后在弹出窗口中才有我们要的信息,所以平常用的方法也许不行. 这里我用到的是Selenium这个工具, 不知道的朋友可以去搜索一下. 但是安装也是很费事的. 而且我用的浏览器是firefox,不用IE是因为好像新版的IE在Selenium下有问题,我也是百思不得其解, 网上也暂时没找到好的办法. from selenium import webdriver from selenium.we

  • javascript之弹出窗口居中的代码

    function openWin(u, w, h) { var l = (screen.width - w) / 2; var t = (screen.height - h) / 2; var s = 'width=' + w + ', height=' + h + ', top=' + t + ', left=' + l; s += ', toolbar=no, scrollbars=no, menubar=no, location=no, resizable=no'; open(u, 'oW

随机推荐