基于两年开发经验,总结了 javascript、jQuery 获取窗口、文档、元素的各种值

javascript:

文档:是整个document所有的内容

浏览器当前窗口文档body的宽度: document.body.clientWidth;(仅仅是body的width)
浏览器当前窗口文档body的高度: document.body.clientHeight;(仅仅是body的height)

浏览器当前窗口文档body的宽度: document.body.offsetWidth;(width+border);
浏览器当前窗口文档body的高度: document.body.offsetHeight;(height+border);

浏览器整个文档的宽: document.body.scrollWidth;
浏览器整个文档的高: document.body.scrollHeight;

获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(其他浏览器):document.body.scrollTop;
获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度)(ie浏览器): document.documentElement.scrollTop;
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度)(其他浏览器): document.body.scrollLeft;
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度)(ie浏览器): document.documentElement.scrollLeft;

滚动条中内容的高度:boxx.scrollHeight;//利用这个可以使滚动条一直在底部

网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;

获取元素的宽度:clientWidth;(width+padding)
获取元素的高度:clientHeight;(height+padding)

获取元素的宽度:offsetWidth;(width+padding+border)
获取元素的高度:offsetHeight;(height+padding+border)

获取元素最左边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档顶部):offsetLeft
获取元素最上边距已定位的父级对象的长度(若无父级对象或父级对象没有定位,就是距离文档左端):offsetTop

屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

jQuery:

文档:是包括滚动条所有的内容

获取浏览器显示区域(可视区域)的高度 : $(window).height();
获取浏览器显示区域(可视区域)的宽度 : $(window).width();

获取页面的文档高度:$(document).height();
获取页面的文档宽度 :$(document).width();

浏览器当前窗口文档body的高度: $(document.body).height();
浏览器当前窗口文档body的宽度: $(document.body).width();

获取竖直滚动条到顶部的垂直高度 (即网页被卷上去的高度) :$(document).scrollTop();
获取水平滚动条到左边的水平宽度 (即网页被卷左去的宽度):$(document).scrollLeft();

获取或设置元素的宽度:$(obj).width();(width) 注意只是元素的宽度,不包括padding
获取或设置元素的高度:$(obj).height();(height) 注意只是元素的高度,不包括padding

获取或设置元素的宽度:$(obj).innerWidth(); (width + padding)
获取或设置元素的高度:$(obj).innerHeight(); (height + padding)

获取或设置元素的宽度:$(obj).outerWidth(); (width + padding + border)
获取或设置元素的高度:$(obj).outerHeight(); (height + padding + border)

获取元素的宽度:$(obj).outerWidth(true); (width + padding + border + margin)
获取元素的高度:$(obj).outerHeight(true); (height + padding + border + margin)

某个元素的上边界距文档最上边距离:obj.offset().top;
某个元素的左边界距文档最左边距离:obj.offset().left;

鼠标移动:

screenY:
鼠标相对于显示器屏幕左上角的偏移

pageY:
鼠标相对于页面左上角的偏移 (其值会受滚动条的影响,相当于整个文档,整个页面的Y的值)
IE9之下并不支持这个属性

clientY:
鼠标相对于浏览器窗口左上角的偏移(其值不会受滚动条影响,相对于滚动条当前的位置的浏览窗口的Y值)
注意clientY和pageY的区别,pageY在页面无滚动条或滚动条下拉0的情况下值等同于clientY

event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标

layerY:
如果元素的position样式不是默认的static,我们说这个元素具有定位属性。
在当前触发鼠标事件的元素和它的祖先元素中找到最近的具有定位属性的元素,计算鼠标与其的偏移值,
以找到元素的border的左上角的外交点作为相对点。如果找不到具有定位属性的元素,那么就相对于当前页面计算偏移,此时等同于pageY。

offsetY :
offsetY和layerY的不同在于,前者的在计算偏移值时,相对于元素的border左上角的内交点,
因此当鼠标位于元素的border上时,偏移值是一个负值。
另外offsetY并不在乎触发事件的元素是否有定位属性,它总是相对于触发事件的元素来计算偏移值。

鉴于layerY和offsetY的不同,要兼容的使用二者要注意
  1.触发事件的元素一定要设置定位属性。
   2.在元素具有上边框border-top的情况下, layerY比offsetY的值多一个border-top的宽度值。

js、jQuery 获取文档、窗口、元素的各种值的更多相关文章

  1. jquery获取文档高度和窗口高度的例子

    jquery获取文档高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...

  2. Js/Jquery获取iframe中的元素

    转载: Js/Jquery获取iframe中的元素 - - ITeye技术网站http://java-my-life.iteye.com/blog/1275205 在web开发中,经常会用到ifram ...

  3. jquery获取文档高度和窗口高度汇总

    jquery获取窗口高度和窗口高度,$(document).height().$(window).height() $(document).height():整个网页的文档高度 $(window).h ...

  4. js和jquery获取文档对象以及滚动条位置

    <div style="width:120px;height:120px;border:1px solid red; position:absolute; left:800px; to ...

  5. Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

    在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:window ...

  6. jQuery中获取文档的高度、可视区域高度以及滚动条距页面顶部的高度

    在写页面的时候,经常会碰到这样的情况,就是要获取文档的高度.可视区域高度或者滚动条距页面顶部的高度等情况. 但我总是有些爱搞混淆了,这里还是简单做个笔记吧,这里只限于使用jQuery来获取. 1.获取 ...

  7. 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. jQuery全屏滚动插件fullPage.js中文帮助文档API

    jQuery全屏滚动插件fullPage.js中文帮助文档API   发现了一个fullPage.js插件,于是百度了一下,还就是这个插件的作用,其实有很多网站都做了全屏滚动的特效,效果也很好看,今天 ...

  9. javaScript获取文档中所有元素节点的个数

    HTML+JS 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

随机推荐

  1. mui实现切换选项卡

    mui切换选项卡头目对应选项内容是webAPP应用最多的功能 引入mui文件: 引入mui-segmented-control类实现顶部头目: 引入mui-content-padded类加入各选项卡内 ...

  2. epel扩展库的安装

    epel扩展库的安装 2017-10-09  18:07:48 个人原创,转载请注明作者,出处,否则追究法律责任 1,centos6.x系统中,必需安装epel-release-6-8.noarch. ...

  3. delphi GDI 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法

    delphi 图片压缩代码 据说是位图缩放保持原图视觉效果最好的算法 若有更好的,请大神留言我也学习下,感谢! uses WinAPI.GDIPAPI, WinAPI.GDIPOBJ; var  Bi ...

  4. unix命令

    最近需要用到一些Unix的东西 ,就学习了下这个东西,简单记录下命令,方便以后查询! 1. ls这是最基本的档案指令. ls 的意义为 "list",也就是将某一个目录或是某一个档 ...

  5. NGINX详解

    目录 1.    基础概念    1 2.    版本选择    1 3.    服务安装    1 4.    模块说明    1 5.    配置说明    1 5.1    目录结构    1 ...

  6. Ubuntu16.04 中 Vscode 如何断点调试C语言程序

    个人博客链接:Ubuntu16.04 中 Vscode 如何断点调试C语言程序 问题:环境是 Ubuntu16.04,如何使用 Vscode 断点调试C语言程序. 写代码没有调试环境是不能忍受的,所以 ...

  7. SpringBoot工作机制

    1:前言 回顾探索Spring框架 1.spring ioc IoC其实有两种方式,一种就是DI,而另一种是DL,即Dependency Lookup(依赖查找),前者是当前软件实体被动接受其依赖的其 ...

  8. Gitlab - Pull Request

    1.概述 今天查看Gmail,有网友私密我Gitlab的Pull Request工作流程,一直以为我写过这片博客,查看<Git和Gitlab协同工作>却发现遗漏了Pull Request这 ...

  9. 【pyHook】 监测键盘鼠标事件等

    [pyHook] pyHook是一个用来进行键盘.鼠标等层面事件监控的库.这个库的正常工作需要pythoncom等操作系统的API的支持.首先来说说如何安装. 直接pip install pyHook ...

  10. http,socks4,socks5代理的区别

    HTTP代理 能够代理客户机的HTTP访问,主要是代理浏览器访问网页,它的端口一般为80.8080.3128等: SOCKS代理 SOCKS代理与其他类型的代理不同,它只是简单地传递数据包,而并不关心 ...