浅谈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 trim去空格的最佳实践
Oct 30 Javascript
javascript简单事件处理和with用法介绍
Sep 16 Javascript
JavaScript实现存储HTML字符串示例
Apr 21 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 Javascript
json格式的javascript对象用法分析
Jul 04 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
Oct 24 Javascript
layui在form表单页面通过Validform加入简单验证的方法
Sep 06 Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 Javascript
详解Vue router路由
Nov 20 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
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
prototype class详解
2006/09/07 Javascript
JQuery 入门实例1
2009/06/25 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
fastadmin中调用js的方法
2019/05/14 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
动态实现element ui的el-table某列数据不同样式的示例
2021/01/22 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
详解Python的三种可变参数
2019/05/08 Python
python opencv调用笔记本摄像头
2019/08/28 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
python定义具名元组实例操作
2021/02/28 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
科室工作个人总结的自我评价
2013/10/29 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
投标诚信承诺书
2014/05/26 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
音乐研修感悟
2015/11/18 职场文书
2016年母亲节广告语
2016/01/28 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫