浅谈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 相关文章推荐
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
jquery图片滚动放大代码分享(1)
Aug 25 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
ES2015 Symbol 一种绝不重复的值
Dec 25 Javascript
windows下vue.js开发环境搭建教程
Mar 20 Javascript
php 解压zip压缩包内容到指定目录的实例
Jan 23 Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
教你如何用Node实现API的转发(某音乐)
Sep 20 Javascript
微信小程序自定义组件components(代码详解)
Oct 21 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/08/20 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
PHP7变量处理机制修改
2021/03/09 PHP
Grid得到选择行数据的方法总结
2011/01/17 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
Python输出带颜色的字符串实例
2017/10/10 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python利用Xpath选择器爬取京东网商品信息
2020/06/01 Python
python打开音乐文件的实例方法
2020/07/21 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
银行会计业务的个人自我评价
2013/11/02 职场文书
创业资金计划书
2014/02/06 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
yolov5返回坐标的方法实例
2022/03/17 Python
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python