浅谈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技术-屏蔽类
Aug 15 Javascript
JS Timing
Apr 21 Javascript
jQuery DOM操作小结与实例
Jan 07 Javascript
Express.JS使用详解
Jul 17 Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
图片加载完成再执行事件的实例
Nov 16 Javascript
vue+element实现批量删除功能的示例
Feb 28 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
Mar 15 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php socket方式提交的post详解
2008/07/19 PHP
php2html php生成静态页函数
2008/12/08 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
Mac系统下Webstorm快捷键整理大全
2017/05/28 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
2019/07/12 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
2020/02/14 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
python正则分组的应用
2013/11/10 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python 批量修改 labelImg 生成的xml文件的方法
2019/09/09 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
实现向右循环移位
2014/07/31 面试题
八项规定整改方案
2014/02/21 职场文书
项目建议书怎么写
2014/05/15 职场文书
信访维稳承诺书
2015/05/04 职场文书
办公经费申请报告
2015/05/15 职场文书
全陪导游词开场白
2015/05/29 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫