浅谈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 相关文章推荐
JavaScript Eval 函数使用
Mar 23 Javascript
jQuery.buildFragment使用方法及思路分析
Jan 07 Javascript
jquery中的$(document).ready()使用小结
Feb 14 Javascript
jquery实现具有嵌套功能的选项卡
Feb 12 Javascript
AngularJS实现分页显示数据库信息
Jul 01 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
js定时器出现第一次延迟的原因及解决方法
Jan 04 Javascript
如何使用vue3打造一个物料库
May 08 Vue.js
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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
javascript 打印页面代码
2009/03/24 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
js+html5实现canvas绘制圆形图案的方法
2015/06/05 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
ionic实现可滑动的tab选项卡切换效果
2020/04/15 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
python实现字符串加密 生成唯一固定长度字符串
2019/03/22 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
简历中自我评价怎么写
2014/02/12 职场文书
感恩的演讲稿
2014/05/06 职场文书
教师听课学习心得体会
2016/01/15 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers