浅谈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学习阶段性总结(2)--(X)HTML学习
Feb 03 Javascript
AngularJS 遇到的小坑与技巧小结
Jun 07 Javascript
通过sails和阿里大于实现短信验证
Jan 04 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
May 05 Javascript
微信小程序模版渲染详解
Jan 26 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
Mar 05 Javascript
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
详解CommonJS和ES6模块循环加载处理的区别
Dec 26 Javascript
细说Vue组件的服务器端渲染的过程
May 30 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
js实现滚动条自动滚动
Dec 13 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流量统计功能的实现代码
2012/09/29 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
thinkphp框架page类与bootstrap分页(美化)
2017/06/25 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
Node.js中require的工作原理浅析
2014/06/24 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
nodejs使用redis作为缓存介质实现的封装缓存类示例
2018/02/07 NodeJs
小程序转发探索示例
2019/02/19 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
解决python多行注释引发缩进错误的问题
2019/08/23 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
项目经理岗位职责
2015/01/31 职场文书
老人与海读书笔记
2015/06/26 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
学校少先队工作总结
2015/08/12 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
面试被问select......for update会锁表还是锁行
2021/11/11 MySQL
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android