JavaScript中的坐标

基本概念

视口坐标:相对于浏览器左上角或相对于框架页<iframe>元素的坐标,不包括浏览器的“外壳”。

文档坐标:相对于文档左上角的坐标

除IE8及更早的版本,Window对象的pageXOffset和pageYOffset属性在所有的浏览器中提供滚动条的位置。

IE和其他浏览器可以通过scrollLeft和scrollTop属性来获得滚动条的位置。标准模式下,通过document.documentElement来获取这些属性,怪异模式下,通过document.body来获取这些属性

Example:

//获取滚动条偏移量
function getScrollOffsets(w){
    w=w||window;   var d=w.document;
    if(w.pageXOffset!=null){
        return {
            x:w.pageXOffset,
            y:w.pageYOffset
        };
    }
    if(document.compatMode=="CSS1Compat"){
        return{
            x:d.documentElement.scrollLeft,
            y:d.documentElement.scrollTop
        };
    }
    return {
        x:d.body.scrollLeft,
        y:d.body.scrollTop
    };
}

查询元素的几何尺寸

getBoundingClientRect方法,返回一个有left.right,top,bottom属性的对象,left,top表示元素左上角的坐标,right,bottom表示元素右下角的坐标,返回元素在视口坐标的位置,返回的坐标包含元素的边框和内边距,不包含外边距,非实时的,在用户滚动或改变浏览器窗口大小时不会更新它们。

HTML元素的offsetLeft和offsetTop属性也能返回元素的X和Y坐标(若该元素是已定位的子元素,则它返回相对于父元素的坐标,可通过offsetParent来获取它的父元素),offsetWidth和offsetHeight返回它的屏幕尺寸。

Document对象的的elementFromPoint方法返回指定位置的一个元素,传递x坐标和y坐标

滚动

Window对象的scrollTop()方法,接受一个点的X和Y坐标,并作为滚动条偏移量来设置他们

scrollby()和scroll()和scrollTo()类似,但是它的参数是相对的

可通过getBoundingClientRect计算元素位置,并转换为文档坐标,再调用scrollTo()移动到元素所在的位置。但有更简单的办法,scrollIntoView(),默认参数为true,放在视口的上边缘处,设置为false时,放在视口的下边缘处

原文地址:https://www.cnblogs.com/goOtter/p/9397731.html

时间: 2024-10-11 00:26:44

JavaScript中的坐标的相关文章

javascript中常用坐标属性offset、scroll、client

原文:javascript中常用坐标属性offset.scroll.client 今天在学习js的时候觉得这个问题比较容易搞混,所以自己画了一个简单的图,并且用js控制台里面输出测试了下,便于理解. 1.在文档(document)对象里面用: scrollWidth/Height:获取对象的滚动宽度(滚动条可以滚动的宽度,相当于整个页面的总宽度的样子--网页正文全宽) scrollLeft/Top:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离(页面利用滚动条滚动到右边时,隐藏在

javascript中关于坐标 大小 的描述

window对象 有效桌面的大小,除去桌面下面的任务栏的高度 window.screen.availHeight : window.screen.availWidth : 浏览器窗口的左上角相对于windows桌面的位置(FF不支持改属性) window.screenTop : 距windows桌面顶部的距离 window.screenLeft : 距windows桌面左边的距离 屏幕的分辨率 window.screen.height : window.screen.width : 浏览器窗口的

【转】深入浅出 JavaScript 中的 this

Java 等面向对象的语言中,this 关键字的含义是明确且具体的,即指代当前对象.一般在编译期确定下来,或称为编译期绑定.而在 JavaScript 中,this 是动态绑定,或称为运行期绑定的,这就导致 JavaScript 中的 this 关键字有能力具备多重含义,带来灵活性的同时,也为初学者带来不少困惑.本文仅就这一问题展开讨论,阅罢本文,读者若能正确回答 JavaScript 中的 What ’s this 问题,作为作者,我就会觉得花费这么多功夫,撰写这样一篇文章是值得的. Java

javascript中的事件

在javascript中的事件有三个方面的知识,一是事件流,二是事件处理程序,三是事件对象.下面就我个人的一点理解,分别讲述一下这三个方面的内容. 第一.事件流 事件流指的是事件按照一定的顺序触发.它有两个顺序,分别是自上而下和自下而上. 自上而下的叫做事件捕获,事件捕获指的是事件的处理将从DOM层次的根开始,而不是从触发事件的目标元素开始,事件被从目标元素的所有祖先元素依次往下传递.在这个过程中,事件会被从文档根到事件目标元素之间各个继承派生的元素所捕获,如果事件监听器在被注册时设置了useC

JavaScript中常见的字符串操作函数及用法汇总

1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: ? 1 2 var num= 19; // 19 var myStr = num.toString(); // "19" 你同样可以这么做: ? 1 2 var num= 19; // 19 var myStr = String(num); // "19" 或者,再简单点儿: ? 1 2 var num= 19; // 19 var myStr =

深入浅出 JavaScript 中的 this

本文来自:http://www.ibm.com/developerworks/cn/web/1207_wangqf_jsthis/ JavaScript 语言中的 this 由于其运行期绑定的特性,JavaScript 中的 this 含义要丰富得多,它可以是全局对象.当前对象或者任意对象,这完全取决于函数的调用方式.JavaScript 中函数的调用有以下几种方式:作为对象方法调用,作为函数调用,作为构造函数调用,和使用 apply 或 call 调用.下面我们将按照调用方式的不同,分别讨论

JavaScript中的各种宽高以及位置总结

JavaScript中的各种宽高以及位置总结 在javascript中操作dom节点让其运动的时候,常常会涉及到各种宽高以及位置坐标等概念,如果不能很好地理解这些属性所代表的意义,就不能理解js的运动原理,同时,由于这些属性概念较多,加上浏览器之间 实现方式不同,常常会造成概念混淆,经过研究之后,这里来进行一个总结. 第一部分:DOM对象 1.1只读属性 所谓的只读属性指的是DOM节点的固有属性,该属性只能通过js去获取而不能通过js去设置,而且获取的值是只有数字并不带单位的(px,em等),如

JavaScript中event的x,clientX,offsetX的区别

JavaScript中event的x,clientX,offsetX的区别 请看下面的文字说明,也就是event中x,clientX,offsetX,screenX的区别: x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置.www.mlybyby.com clientX:相对于客户区域的x坐标位置,不包括滚动条,就是正文区域. offsetx:设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置. screenX:相对于用户屏幕. 同时你可以对比下面代码分析 Cl

【好文收藏】javascript中event对象详解

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. <HTML> <HEAD><TITLE>Cancels Links</T