JS的window对象下的属性的方法和注意事项

一、通过浏览器获得屏幕的尺寸

screen.width
screen.height

screen.availHeight //获取去除状态栏后的屏幕高度
screen.availWidth  //获取去除状态栏后的屏幕高度

二、获取浏览器窗口内容的尺寸

//高度
window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight

//宽度
window.innerWidth || document.documentElement.clientWidth || document.body.clientWidht

/ *
  * window.innerHeight   FF/CH 支持,获取窗口尺寸。
  * document.documentElement.clientHeight    IE/CH支持
  * document.body.client    通过body元素获取内容的尺寸

* /

三、滚动条支持的差异性

不进行任何滚动条更改的页面,Firefox/IE 默认认为HTML元素具有滚动条属性。而body不具有。
但Chrome 则认为body是具有滚动条属性的。
因此兼容性的写法是:

document.documentElement.scrollTop || document.body.scrollTop

四、获取元素的尺寸

elemnt.offsetWidth
elemnt.offsetHeight

// 仅IE5不支持,放心使用吧

说明图:

  

  * offsetWidth 可以获取元素的高度尺寸,包括:width + padding[left,right] + border[left,right]

  * offsetHeight 可以获取元素的宽度尺寸,包括:height + padding[top,bottom] + bottom[top,bottom]

五、元素的偏移属性

element.offsetTop  //获取元素与其偏移参考父元素顶部的间隔距离
element.offsetLeft  //获取元素与其偏移参考父元素左边的间隔距离
element.offsetParent  //获取当前元素的参考父元素

*offsetTop 可以获取元素距其上一级的偏移参考父元素顶部的距离。包括:margin[top] + top

*offsetLeft 可以获取元素距其上一级的偏移参考父元素左边的距离。包括:margin[left] + left

*注意的是offsetParent在IE6/7,与IE8/FF/CH中存在兼容性问题:

  在FF/Chrome/IE8+ :

         如果当前元素有定位,则偏移参考父元素是其上一级的最近的那个定位元素。

         如果当前元素没有定位,则默认以body为最终的参考父元素。

   在IE6/7:

         不论有没有定位,其偏移参考父元素都是其上一级的父元素。

  总的来说:

          不论是FF/Chrome还是IE,最终的参考父元素都是body元素, 因此兼容的方法就是获取当前元素到body元素的偏移位置值。

  

  兼容性写法

    function getOffestValue(elem){

        var Far = null;
        var topValue = elem.offsetTop;
        var leftValue = elem.offsetLeft;
        var offsetFar = elem.offsetParent;

        while(offsetFar){
            alert(offsetFar.tagName)
            topValue += offsetFar.offsetTop;
            leftValue += offsetFar.offsetLeft;
            Far = offsetFar;
            offsetFar = offsetFar.offsetParent;
        }
        return {‘top‘:topValue,‘left‘:leftValue,‘Far‘:Far}
    }

/*
  * top 当前元素距离body元素顶部的距离。
  * left 当前元素距离body元素左侧的距离。
  * Far  返回最终的参考父元素。
*/
时间: 2024-12-03 05:02:58

JS的window对象下的属性的方法和注意事项的相关文章

js内置对象Math的属性和方法

属性: constructor 所建立对象的函数参考 prototype 能够为对象加入的属性和方法 E 欧拉常量,自然对数的底(约等于2.718) LN2 2的自然对数(约等于0.693) LN10 10的自然对数(约等于2.302) LOG2E 以2为底的e的对数.(约等于1.442) LOG10E 以10为底的e的对数(约等于0.434) PI ∏的值(约等于3.14159) SQRT1_2 1/2(0.5)的平方根(即l除以2的平方根,约等于o.707) SQRT2 2的平方根(约等于1

js中window对象的opener属性的一个坑

2018-05-08 17:48:33 今天我编写js代码时碰到了一个让我纠结了很久的小问题,在此记录一下当做笔记, 这个问题就是:在我自己写的子窗口中用opener属性却获取不到父窗口的window对象. 现在已经解决这个问题,请看下文 这是父窗口(windows.html)的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/lo

js中window对象详解以及页面跳转

js中window对象详解以及页面跳转 转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%90%9C/39219.shtml 1.window.top.window.location = "index.asp"; 2.window.top.location.href="index.asp" 3. window.top.location.replace("index.asp");

利用window对象下内置的子对象实现网页的刷新

这里我们用到的window对象下内置的子对象有: 1.history对象:包含浏览器访问过的url.我们可以利用它的history.go(num);属性实现页面的刷新: history.go(num);        //跳转到指定num的历史记录,num为正向前跳转,num为负,向后跳转,跳转数为num: 但当我们将num设为0时,即:history.go(0);跳转到当前页面,即可实现对当前页面的刷新: 2.location对象:包含当前url的相关信息,而history对象不能具体反映ur

window对象的常用属性,常用方法

window对象的常用属性: window.self 返回当前窗口的引用 window.parent   返回当前窗体的父窗体对象 window.top 返回当前窗体最顶层的父窗体的引用 window.outerwidth       返回当前窗口的外部宽 window.outerheight  返回当前窗口的外部高 window.innerwidth       返回当前窗口的可显示区域宽 window.innerheight  返回当前窗口的可显示区域高 提示:通过直接在Chrome控制台中

通过反射获取某个对象下的属性值,或通过父类获取

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; /** * 通过反射获取某个对象下的属性值,或通过父类获取 * User: wangyongfei * Date

通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值

package com.Summer_0426.cn; /** * @author Summer * 通过supper()有参构造器,完成子类对象调用父类属性的方法,并完成赋值 * */ public class Test01 { public static void main(String[] args) { JavaTeacher guoxiang = new JavaTeacher("郭襄");//子类实例化,并传入参数 guoxiang.giveLesson();//输出结果,

JS的window对象详解

一.说明 他是JS中最大的对象,它描述的是一个浏览器窗口,一般要引用他的属性和方法时,不需要用"Window.XXX"这种形式,而是直接使用"XXX".一个框架页面也是一个窗口. 二.Window窗口对象有如下属性 1.name 窗口的名称,由打开它的连接(<a target="...">)或框架页(<frame name="...">)或某一个窗口调用的 open() 方法(见下)决定.一般我们不会用

js中Window 对象及其的方法

window.location 对象 window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面.window.location 对象在编写时可不使用 window 这个前缀. location.hostname 返回 web 主机的域名 location.pathname 返回当前页面的路径和文件名 location.port 返回 web 主机的端口 (80 或 443) location.protocol 返回所使用的 web 协议(http://