zoukankan      html  css  js  c++  java
  • 获取计算后样式的方法(兼容版)

    标准下获取计算后样式

     getComputedStyle(el)["attr"]
    
    • 本身是一个函数,返回的值是一个对象

    IE下获取计算后样式

    el.currentStyle["attr"]
    
    • 本身是元素上的一个属性
      • currentStyle 不可以获取复合样式
      • 获取backgroundImage 的 url 的时候获取到的是绝对路径

    兼容版封装函数:

    function getStyle(el,attr) {
    	if(el.currentStyle) {
    		return el.currentStyle[attr];
    	}
    	return getComputedStyle(el)[attr];
    }
    注:el(元素)   attr(属性名称)
    

    备注:因为el.currentStyle是一个属性,IE下是有这个属性的就会返回true,而标准下是没有这个属性的那就是undefined,undefined会返回false,所以可以用来做判断;

    用法

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    #wrap {
    	 500px;
    	height: 500px;
    }	
    </style>
    <script type="text/javascript">
    function getStyle(el,attr){
    	if(el.currentStyle){
    		return el.currentStyle[attr];
    	}
    	return getComputedStyle(el)[attr];
    }
    window.onload = function(){
    	var wrap = document.getElementById('wrap');
    	wrap.onclick = function() {
    		var width = parseFloat(getStyle(wrap,'width'));//获取div的宽
    		console.log(getStyle(wrap,"width"));
    	}
    
    };
    </script>
    </head>
    <body>
    <div id="wrap"></div>
    </body>
    </html>
    
  • 相关阅读:
    sublime配置攻略
    Objective-C代码块语法(block)使用
    [C/C++]_[VS2010来源与UTF8中国字符串转码ANSI问题]
    Android资源管理框架(Asset Manager)简介和学习计划
    ExtJs自学教程(1):从一切API开始
    ORACLE触发特定的解释
    同TextView在不同的显示内容
    :gAudit
    IIS日志分析 MapReduce
    图片存储心得
  • 原文地址:https://www.cnblogs.com/Ivy-s/p/6919066.html
Copyright © 2011-2022 走看看