************************************************************************
//ie中如果全部不给定值则会都为零(宽和高在设置一个的情况则会正常获取值),ff中则返回撑开区域的大小
元素所占区域的大小,包含padding不含border(有滚动条时会去除滚动条,可视区域的大小) 滚动条为17px
此属性作用于行内元素时获取的都为0, 但当设置为 inline-block时,如果都ff/ie则可以根据内容自动获取宽高

clientWidth
clientHeight

在有size的限制下时:实际区域的大小(当有滚动条的时候,有滚动条时会去除滚动条),包含padding
当没有size的限制时,ie则会把边框也加上
scrollWidth
scrollHeight

当在限制了元素的size的情况下,且没有混动条时上面这两个元素值是相等的

//无论是否设置宽高都会返回正常的值,只是浏览器默认差异不同而不同
offsetwidth 一个对象在页面中实际所占区域的大小 宽高+边框+padding+滚动条
offsetwidth

以上属性都是针对行内元素说的,且都会包含padding ,可以用 offsetHeight-clientHeight 求边框的值

************************************************************************
alert(document.documentElement.clientHeight);
alert(document.documentElement.scrollHeight);
alert(document.documentElement.offsetHeight);

document.documentElement.clientHeigh + document.documentElement.scrollTop = document.documentElement.scrollHeight

在火狐和ie小表现效果个不一样

alert(Fid('song').clientWidth);
alert(Fid('song').clientHeight);

alert(Fid('song').scrollWidth);
alert(Fid('song').scrollHeight);

alert(Fid('song').offsetWidth);
alert(Fid('song').offsetHeight);
但如果当到一个具体元素上则没有任何问题 所以在获取页面可视区域大小(浏览器的)时最好用 document.documentElement

只能获取左边框和上边框
clientleft
clienttop

************************************************************************
元素坐标获取(针对非static属性的元素)

最好都设置left,top值,如果不设置当前面有其他元素时会影响他的left,top值, 会包含margin值

offsetleft:
offsettop:

offsetParent 是离调用它的元素最近的已经定位了的元素,如果元素本身未定位,则其offsetParent是离它最近的文档根元素或者表格单元(table cell)。

offsetparent 获取相的父元素 但在IE下offset对象是对当前元素到上一级元素的距离,FF则是正常的

scrollleft 即隐藏区域的左半部分
scrolltop

************************************************************************\
事件位置相关

clientX
clientY 是相对于视口中的位置(都支持)

ie,opera 的offsetX, offsetY 都不算边框,但是ff(layerX, layerY)算边框 最好不要用此属性,存在兼容性问题
offsetX(ie) layerX(ff)
offsetY layerY 是相对于被点击的元素

//相对于页面的坐标
pageX = clientX + document.documentElement.scrollLeft;
pageY = clientY + document.documentElement.scrollTop;

javascript 获取页面尺寸/位置的更多相关文章

  1. javascript 获取页面的高度及滚动条的位置的代码

    http://www.jb51.net/article/23331.htm javascript 获取页面的高度及滚动条的位置的代码 作者: 字体:[增加 减小] 类型:转载   javascript ...

  2. 用javaScript获取页面元素值

    用JavaScript获取页面元素常见的三种方法:                                                           getElementById() ...

  3. 用JavaScript获取页面上被选中的文字的技巧

    这里介绍的一个小技巧是如何用JavaScript获取页面上被选中的文字的方法.最关键的JavaScript API是: event.selection = window.getSelection(); ...

  4. JavaScript获取页面元素的常用方法

    1.通过标签获取元素,返回一个数组 var li = document.getElementsByTagName('li');//标签获取元素 li[0].innerHTML;// 查看获取元素的内容 ...

  5. 用 Javascript 获取页面大小、窗口大小和滚动条位置

    页面大小.窗口大小和滚动条位置这三个数值在不同的浏览器例如 Firefox 和 IE 中有着不同的实现.即使在同一种浏览器例如 IE 中,不同版本也有不同的实现. 本文给出两个能兼容目前所有浏览器的 ...

  6. 利用JavaScript获取页面文档内容

    JavaScript的document对象包含了页面的实际内容,所以利用document对象可以获取页面内容,例如页面标题.各个表单值. <!DOCTYPE html> <html ...

  7. javascript获取页面文档内容

    <html> <head> <title>JavaScript基础</title> </head> <body> <p&g ...

  8. Javascript 获取页面高度(多种浏览器)

    //2015年8月13日11:00:50 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: d ...

  9. 用Javascript获取页面元素的位置

    制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置. 下面的教程总结了Javascript在网页定位方面的相关知识. 一.网页的大小和浏览器窗口的大小 首先,要明确两个基本概念. 一张网页的 ...

随机推荐

  1. 两个函数彻底理解Lua中的闭包

    本文通过两个函数彻底搞懂Lua中的闭包,相信看完这两个函数,应该能理解什么是Lua闭包.废话不多说,上 code: --[[************************************** ...

  2. java - 内存泄漏

    内存泄漏问题产生原因 长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场 ...

  3. [Js插件]使用JqueryUI的弹出框做一个“炫”的登录页面

    引言 查看项目代码的时候,发现项目中用到JqueryUi的弹出框,可拖拽,可设置模式对话框,就想着使用它弄一个登录页面. 弹出框 在Jquery Ui官网可定制下载弹出框,下载和弹出框下载相关的js文 ...

  4. Hough变换的方法检测直线段,效果良好

    转自pund, Hough_Grd 程序下载地址:点击下图,并在下图所示的路径下寻找

  5. 有用的iOS网站地址

    王巍 (@onevcat) 是一名 iOS 和 Unity3D 开发者,现旅居日本,正在寻求创意之源.http://swifter.tips/http://onevcat.com/2013/02/xc ...

  6. [Android Studio] Android Studio移除的Module如何恢复(转载)

    如果你执行了从module列表中移除module的操作,但是没有执行delete module文件夹的操作,那如何恢复被移除掉的module呢. 关于如何移除请戳这:Android Studio如何删 ...

  7. 科普:UTF-8 GBK UTF8 GB2312 之间的区别和关系

    UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三 ...

  8. GameObjectPool——Unity中的对象池

    这里介绍一种对象池的写法.它的优点在于无论取出还是插入游戏物体都是常数量时间. using UnityEngine; using System.Collections; using System.Co ...

  9. Servlet学习笔记(一):生命周期

    一.Servlet 生命周期: Servlet 生命周期可被定义为从创建直到毁灭的整个过程.以下是 Servlet 遵循的过程:初始化——响应请求——终止——回收 Servlet 通过调用 init ...

  10. IOS NSNotification Center 通知中心的使用

    通知中心,它是IOS程序内部的一种消息广播机制,通过它,可以实现无引用关系的对象之间的通信.通知中心他是基于观察者模式,它只能进行程序内部通信,不能跨应用程序进程通信.当通知中心接受到消息后会根据设置 ...