`
robinqu
  • 浏览: 90411 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Javascript 窗口的几何关系和相关方法、属性

阅读更多
Window Geometry
窗口几何关系

引用
Screen coordinates describe the position of a browser window on the desktop; they are measured relative to the upper-left corner of the desktop.


Screen坐标系是描述浏览器窗口和桌面之间的几何关系的,其坐标是相对于桌面左上角的。

引用
Window coordinates describe a position within the web browser's viewport; they are measured relative to the upper-left corner of the viewport.


Window坐标系描述了浏览器页面可视区域的几何关系,其坐标是相对于可视区域的左上角。

引用
Document coordinates describe a position within an HTML document; they are measured relative to the upper-left corner of the document. When the document is longer or wider than the viewport (as web pages often are), document coordinates and window coordinates are not the same, and you'll need to take the position of the scrollbars into account when converting between these two coordinate systems.


Document坐标系描述了HTML元素与document文档的几何关系,其坐标是相对于document对象的左上角的。
当document足够长而产生滚动条,document坐标系和window坐标系就会产生差异,两个坐标系之间就要考虑转换的方法。

引用
For some reason, IE places these window geometry properties on the <body> of the HTML document. And, further confusing matters, IE 6, when displaying a document with a <!DOCTYPE> declaration, places the properties on the document.documentElement element instead of document.body.


IE在默认状态下将这些相关属性放在document.body下,但如果有<!DOCTYPE>声明,那么就会放在document.documentElement下。
浏览器window对象坐标大小可视区域大小滚动条document对象坐标大小
FFscreenX/YinnerWidth/HeightpageXOffset/YOffsetdocumentElement.scrollLeft/Top
IE with doctypescreenLeft/TopdocumentElement.clientWidthdocumentElement.scrollLeft/Top/HeightdocumentElement.scrollLeft/Top


以下是一个获取几何参数的函数

/**
 * Geometry.js: portable functions for querying window and document geometry
 *
 * This module defines functions for querying window and document geometry.
 *
 * getWindowX/Y( ): return the position of the window on the screen
 * getViewportWidth/Height( ): return the size of the browser viewport area
 * getDocumentWidth/Height( ): return the size of the document
 * getHorizontalScroll( ): return the position of the horizontal scrollbar
 * getVerticalScroll( ): return the position of the vertical scrollbar
 *
 * Note that there is no portable way to query the overall size of the
 * browser window, so there are no getWindowWidth/Height( ) functions.
 *
 * IMPORTANT: This module must be included in the <body> of a document
 *            instead of the <head> of the document.
 */
var Geometry = {};

if (window.screenLeft) { // IE and others
    Geometry.getWindowX = function( ) { return window.screenLeft; };
    Geometry.getWindowY = function( ) { return window.screenTop; };
}
else if (window.screenX) { // Firefox and others
    Geometry.getWindowX = function( ) { return window.screenX; };
    Geometry.getWindowY = function( ) { return window.screenY; };
}

if (window.innerWidth) { // All browsers but IE
    Geometry.getViewportWidth = function( ) { return window.innerWidth; };
    Geometry.getViewportHeight = function( ) { return window.innerHeight; };
    Geometry.getHorizontalScroll = function( ) { return window.pageXOffset; };
    Geometry.getVerticalScroll = function( ) { return window.pageYOffset; };
}
else if (document.documentElement && document.documentElement.clientWidth) {
    // These functions are for IE 6 when there is a DOCTYPE
    Geometry.getViewportWidth =
        function( ) { return document.documentElement.clientWidth; };
    Geometry.getViewportHeight =
        function( ) { return document.documentElement.clientHeight; };
    Geometry.getHorizontalScroll =
        function( ) { return document.documentElement.scrollLeft; };
    Geometry.getVerticalScroll =
        function( ) { return document.documentElement.scrollTop; };
}
else if (document.body.clientWidth) {
    // These are for IE4, IE5, and IE6 without a DOCTYPE
    Geometry.getViewportWidth =
        function( ) { return document.body.clientWidth; };
    Geometry.getViewportHeight =
        function( ) { return document.body.clientHeight; };
    Geometry.getHorizontalScroll =
        function( ) { return document.body.scrollLeft; };
    Geometry.getVerticalScroll =
        function( ) { return document.body.scrollTop; };
}

// These functions return the size of the document. They are not window
// related, but they are useful to have here anyway.
if (document.documentElement && document.documentElemnet.scrollWidth) {
    Geometry.getDocumentWidth =
        function( ) { return document.documentElement.scrollWidth; };
    Geometry.getDocumentHeight =
        function( ) { return document.documentElement.scrollHeight; };
}
else if (document.body.scrollWidth) {
    Geometry.getDocumentWidth =
        function( ) { return document.body.scrollWidth; };
    Geometry.getDocumentHeight =
        function( ) { return document.body.scrollHeight; };
}

分享到:
评论

相关推荐

    JavaScript点击高亮显示并显示属性信息

    本主题聚焦于如何利用SuperMap iClient 6R for JavaScript实现地图对象的点击高亮显示,并弹出popup窗口展示其属性信息。这在GIS应用中是一个常见的需求,例如用于查看详情、进行数据分析或者提供用户交互体验。 ...

    JavaScript 权威指南(第四版).pdf

     8.7 函数属性、方法和构造函数188  8.8 函数式编程194  第9章 类和模块201  9.1 类和原型202  9.2 类和构造函数203  9.3 JavaScript中Java式的类继承207  9.4 类的扩充210  9.5 类和类型212  9.6 ...

    JavaScript权威指南(第6版)

    8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向对象技术 9.7 子类 9.8 ECMAScript...

    JavaScript权威指南(第6版)(附源码)

    8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向对象技术 9.7 子类 9.8 ...

    JavaScript权威指南(第6版)(中文版)

    8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型 9.2 类和构造函数 9.3 JavaScript中Java式的类继承 9.4 类的扩充 9.5 类和类型 9.6 JavaScript中的面向对象技术 9.7 子类 9.8 ECMAScript...

    JavaScript权威指南(第6版)中文版pdf+源代码

     8.7 函数属性、方法和构造函数188  8.8 函数式编程194  第9章 类和模块201  9.1 类和原型202  9.2 类和构造函数203  9.3 JavaScript中Java式的类继承207  9.4 类的扩充210  9.5 类和类型212  9.6 ...

    arcgis for javaScript 开发程序

    ArcGIS API for JavaScript 是一套完备的库,提供了用于地图显示、交互以及地理数据操作的工具和方法,支持快速构建企业级地理空间应用。其开发涉及多个关键概念和技术点,接下来我们将根据提供的文件内容,深入探索...

    Javascript API for ArcGIS Server对象模型图.rar

    1. **对象模型图**:对象模型图是API中各种对象、类和方法的可视化表示,它展示了它们之间的关系,有助于开发者快速理解API的结构和工作原理。在JavaScript API for ArcGIS Server中,主要包含Map、Layer、Geometry...

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    2.2.2ArcGIS API for JavaScript与Dojo的关系 2.3开发与调试工具 2.3.1集成开发环境 2.3.2调试工具 2.3.3Firebug 2.3.4其他工具软件 2.4Dojo基础知识 2.4.1JavaScript对象 2.4.2函数也是对象 2.4.3模拟类与继承 ...

    SuperMap iClient for JavaScript_绘制对象

    气泡窗口的显示方法通常与点对象的交互紧密相关,它为用户提供了一种便捷的方式来查看和交互对象的详细信息。这种功能的实现常常需要设置气泡窗口的样式,以及如何在用户与点对象发生交互时触发气泡窗口的显示。 ...

    JavaScript权威指南(第6版) 中文版

    8.7 函数属性、方法和构造函数 188 8.8 函数式编程 194 第9章 类和模块 201 9.1 类和原型 202 9.2 类和构造函数 203 9.3 javascript中java式的类继承 207 9.4 类的扩充 210 9.5 类和类型 212 9.6 javascript中的面向...

    ArcGis-for-javaScript最全中文API

    为了提高性能,开发者可以使用缓存策略,如使用TileLayer预加载常用区域的地图切片,或者利用GeometryService的静态方法优化几何对象的计算。 10. **移动设备支持(Mobile Support)** ArcGIS for JavaScript API...

    页面最小窗口闪烁

    1. **CSS重排(Reflow)**:当浏览器需要重新计算元素的几何属性时,就会发生重排。这可能是因为动态修改了元素的样式、添加或删除了元素、改变了元素的尺寸或位置等。重排可能导致整个页面或者部分区域重新渲染,...

Global site tag (gtag.js) - Google Analytics