浅谈DOCTYPE对$(window).height()取值的影响


Posted in Javascript onJuly 21, 2016

前言:公司项目需要用到一个弹框垂直居中,网上类似的垂直居中弹出层大同小异,因为项目是基于Jquery 下的,所以用$(window).height()-layer.height())/2 +$(document).scrollTop()取得垂直的位移。测了各种浏览器没问题,后台人员移值到项目中后,出问题了,当页面超出一屏时,在 chrome和FF下,弹出框不是在当前屏的垂直居中,而是相对于整个网页的居中。

查阅各方资料,所有结论都指出:

1.窗口高度,$(window).height()

2.文档高度,$(document).height()

3.被卷起的高度,$(window).scrollTop()

找到原因:而后,发现后台人员的页面没有设DOCTYPE,所以在chrome中,$(window).height()=$(document).height(),$(document).height()表示在网页实际内容高度没有满一屏时表示整个窗口的高度(窗口放大缩小时这个值会变化),页当超过一屏时表示为整个网页内容的实际高度,这点没有异议,跟设不设DOCTYPE没有影响。但是:$(window).height()在DOCTYPE为transitional.dtd时无论网页内容实际高度超不超出满屏情况下,都等于是整个窗口的高度(窗口放大缩小时这个值会变化),如果没有设DOCTYPE则$(window).height()=$(document).height(),在即当内容超一屏时$(window).height()为网页实际高度,并不是所说的等于窗口高度。

解决办法:

s要取得窗口的高度,只能根据DOCTYPE来做相应的更改,在没有设DOCTYPE时做如下处理

if($(document).height()>=$(window).height()){
  _windowHeight=document.body.clientHeight;
  }else{//alert($(window).height());
  _windowHeight=$(document).height();
  };

在有设DOCTYPE为transitional.dtd时,windowHeight=$(window).height()

以上这篇浅谈DOCTYPE对$(window).height()取值的影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中将字符串转换成json的三种方式
Jan 12 Javascript
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
判断文件是否正在被使用的JS代码
Dec 21 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery选择id属性带有点符号元素的方法
Mar 17 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
Apr 06 Javascript
详解Bootstrap四种图片样式
Jan 04 Javascript
js实现精确到秒的日期选择器完整实例
Apr 30 Javascript
深入理解Angular2 模板语法
Aug 07 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
js实现简易垂直滚动条
Feb 22 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
jQuery新窗口打开外链接
Jul 21 #Javascript
JS for循环中i++ 和 ++i的区别介绍
Jul 20 #Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 #Javascript
Node.js如何自动审核团队的代码
Jul 20 #Javascript
js只执行1次的函数示例
Jul 20 #Javascript
JQuery为元素添加样式的实现方法
Jul 20 #Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
Jul 20 #Javascript
You might like
PHP header()函数常用方法总结
2014/04/11 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
javascript一点特殊用法
2008/05/28 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
Labelauty?jQuery单选框/复选框美化插件分享
2015/09/26 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
Node.js Windows Binary二进制文件安装方法
2019/05/16 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
python解析模块(ConfigParser)使用方法
2013/12/10 Python
浅谈对yield的初步理解
2017/05/29 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python sqlite的Row对象操作示例
2019/09/11 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
浅谈python锁与死锁问题
2020/08/14 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
木马的传播途径主要有哪些
2016/04/08 面试题
学期自我鉴定范文
2013/10/01 职场文书
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
客户接待方案
2014/02/26 职场文书
实习生评语
2014/04/26 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
旅游活动总结
2014/08/27 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python