文档坐标及元素坐标等

基本



1、元素位置以像素度量,向右代表X坐标增加,向下代表Y坐标增加,X坐标和Y坐标可以相对于文档的左上角或者相对于其中显示文档的视口的左上角

2、如果没有出现滚动条时(即文档比视口小时),文档和视口坐标系统是同一个,如果出现滚动条时两种坐标系间的转换需要加上或者减去滚动的偏移量(scroll
offset)

3、文档坐标在用户滚动时不会发生变化

4、getBoundingClientRect()返回的坐标包含元素的边框和内边距,不包括元素的外边距

三组坐标



每个html元素都有下面三组属性:


offsetWidth

offsetHeight

offsetLeft

offsetTop

offsetParent——所相对的父元素


clientWidth

clientHeight

clientLeft

clientTop


scrollWidth

scrollHeight

scrollLeft

scrollTop

基本关系如下图:

注意:1、对于内联元素clientLeft、clientTop、clientWidth、clientHeight 总是为0

   2、scrollWidth和scrollHeight是元素的内容区域加上它的内边距再加上任何溢出内容的尺寸。当内容与内容区域匹配没有溢出时,scrollWidth、scolHeight和clientWidth、clientHeight是相等的,当溢出时scrollWidth、scolHeight大于clientWidth、clientHeight

例子



eg1:查询窗口滚动条位置


function getScrollOffsets(w){
w = w || window;
if(w.pageXOffset != null){ //IE8前版本不能使用
return {
x: w.pageXOffset,
y: w.pageYOffset
};
}

var d = w.document; //对于标准模式下IE或者其他浏览器
if(document.compatmode == "CSS1Compat"){
return {
x: d.documentElement.scrolLeft,
y: d.documentElement.scrollTop
};
}

//对于怪异模式下浏览器
return {
x: d.body.scrollLeft,
y: d.body.scrollTop
};
}

eg2:查询窗口视口尺寸


function getViewportSize(w){
w = w || window;
if(w.innerWidth != null){
return {
w: w.innerWidth,
h: w.innerHeight
};
}

var d = w.document;
if(document.compatMode == "CSS1Compat"){
return {
w: d.documentElement.clientWidth,
h: d.documentElement.clientHeight
}
}

return {
w: d.body.clientWidth,
h: d.body.clientHeight
}
}

eg3:计算元素尺寸


var box = e.getBoundingClientRect();
var offsets = getScrollOffsets();
var x = box.left + offsets.x;
var y = box.top + offsets.y;
var w = box.width || (box.right - box.left); //原始的IE中getBoundingsClientRect中没有width和height属性
var h = box.height || (box.bottom - box.top);

  

文档坐标及元素坐标等,布布扣,bubuko.com

时间: 2024-10-15 23:10:12

文档坐标及元素坐标等的相关文章

HTML 鼠标坐标和元素坐标

在这一篇文章中,将会介绍鼠标坐标.元素坐标以及鼠标在指定元素内的坐标. 1. 鼠标坐标 在触发鼠标相关事件时(如:click.mousemove),可以通过事件对象获取当前鼠标的坐标. 获取的坐标可分为2种: 1) MouseEvent.screenX.MouseEvent.screenY :基于屏幕的X.Y坐标:以屏幕的左上角为0,0起始点. 2) MouseEvent.clientX.MouseEvent.clientY :基于body的X.Y坐标:以当前body的左上角为0,0起始点,若b

DOM:文档对象模型 --树模型 文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西

DOM:文档对象模型 --树模型文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西 一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null,可以利用这个属性来关闭源窗口. 方法(函数):事件(事先设置好的程序,被触发): 1.window.open("第一部分","第二部分","第三部分","第四部分"): 特征参数: 第一部分:写要

(008)XHTML文档之blockquote元素

XHTML文档之blockquote元素 blockquote元素标明一段长引文,如书中的一段文字或评论中的推荐辞.它是块级元素,只能包含块级子元素.几乎所有其他结构性标记代码都能出现在blockquote中(段落.标题.列表.甚至别的blockquote),但是它们的内容都应该是原始引文的一部分. 如果引文来自在线资源(包括自己的网站中的其他地方),那么你可以在开标签<blockquote>的cite属性中指定原始来源的URL.cite属性的值应该是一个URL,而不是名称或标题.要想用名称引

(012)XHTML文档之短语元素

XHTML文档之短语元素 我们前面已经介绍了用于将内容组织为富有意义的.易读的部分时要用到的大多数主要的结构性元素.标题.段落和列表是结构化文本的基本构建快料.在下面的介绍中,我们将关注这些块元素内部的一些较小的内容片段. 这些行内元素被称为短语元素,因为它们被用于包装一小串.甚至一个词语,以给予其额外的意义和格式,使其鹤立于周围的词语之中.行内元素只能包括文本和其他行内元素. 一.em元素 em元素强调一个词或短语.可视化web浏览器往往将其内容显示为斜体,但别的设备可能会用不同的方式表现强调

解决:xml中出现“文档中根元素后面的标记必须格式正确。”的错误

配置业务域,type指定使用自定义的fieldType. 修改solr工程下的schema.xml文件,在文件末尾添加一个自定义的fieldType,如下: <schema>............</schema>    <fieldType name="text_ik" class="solr.TextField">      <analyzer class="org.wltea.analyzer.lucene

(第八天)文档坐标、视口坐标和元素坐标

文档坐标和视口坐标 概念 元素的位置是以像素来度量的,向右代表X坐标的增加,向下代表Y坐标的增加.但是,有两个不同的点作为坐标系的原点:元素的X和Y坐标可以相对于文档的左上角或者相对于其中显示文档的视口的左上角.在顶级窗口和标签页中,“视口”只是实际显示文档内容的浏览器的一部分:它不包括浏览器“外壳”(如菜单,工具条件和标签页).当讨论元素的位置时,必须弄清楚所使用的坐标时文档坐标还是视口坐标.[注]视口坐标有时也叫窗口坐标. 举例说明:在文档坐标中如果一个元素的Y坐标时200px,并且用户已经

窗口尺寸,文档高,元素宽高的获取方式

一.元素宽高: window.onload = function() {    var oDiv = document.getElementById('div1');     /*        width height        style.width : 样式宽        clientWidth : 可视区宽        offsetWidth    : 占位宽    */        alert( oDiv.style.width );    //100    alert( o

怎样获取文档的根元素节点

所谓根元素节点, 一般是文档声明节点之后的第一个节点: html 获取它的方法有许多, 这里列举四种: 1. document.documentElement document.documentElement.nodeName; // "HTML" 2. document.firstElementChild document.firstElementChild.nodeName; // "HTML" 3. document.lastChild document.la

xml中出现“文档中根元素后面的标记必须格式正确” 的错误

<?xml version="1.0" encoding="utf-8"?> <person>//这里是根元素,必须要有,否则会报错 <birthday class="object"> <day type="string">17</day> <month type="string">12</month> <year t