zoukankan      html  css  js  c++  java
  • 编写获取最终样式的函数

    function getStyle(obj, attr)
    {
        return parseFloat(obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr])
    }

    解析:函数接收2个参数:
    1, obj,即要获取其最终计算样式的元素对象

    2,attr,即要获取的元素上的属性名称

    3, 使用三元运算符,进行判断,如果元素对象上存在  currentStyle 属性,则说明为 IE,采用方括号法取得所需属性值,并传递给函数 parseFloat,此函数会返回一个浮点数值,即会去除掉传入参数的非数值信息

    4,如果非IE,则调用 getComputedStyle方法,这是DOM2级样式中document.defaultView对象的一个方法。此方法接受2个参数:要取得计算样式的元素和一个伪元素字符串,如:before。如果不需要伪元素信息,第二个参数就设置为null,正如上面代码所示。

    getComputedStyle方法会返回一个CSSStyleDeclaration对象,包含当前元素的所有计算的样式。

    留意:因我要取得的返回样式为 left 和 top,返回后的信息带有 px 字符,故此才会调用parseFloat函数,以去除无关字符,只保留浮点数。

    --------------------

    附注:这也是浏览器差异所导致的。

  • 相关阅读:
    今天面试一些程序员(新,老)手的体会
    UVA 10635 Prince and Princess
    poj 2240 Arbitrage
    poj 2253 Frogger
    poj 2485 Highways
    UVA 11258 String Partition
    UVA 11151 Longest Palindrome
    poj 1125 Stockbroker Grapevine
    poj 1789 Truck History
    poj 3259 Wormholes
  • 原文地址:https://www.cnblogs.com/sx00xs/p/6781205.html
Copyright © 2011-2022 走看看