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>
    
  • 相关阅读:
    uniapp跨域
    uniapp图片文件转base64
    懒加载
    修改富文本样式
    搜集到的常用Scheme
    JS浏览器复制
    程序员必须知道的六大ES6新特性
    详解ES6中的 let 和const
    数据库基础
    配置环境变量
  • 原文地址:https://www.cnblogs.com/Ivy-s/p/6919066.html
Copyright © 2011-2022 走看看