• JavaScript自定义getStyle方法获取元素样式


    兼容性

    兼容性如下图所示摘自 mdn

    解决方法

    由于getComputedStyle方法在IE浏览器中只兼容IE9及其以上,而IE8和它之前的浏览器则需要使用currentStyle方法来获取样式,所以我们就可以自定义一个getStyle方法来解决兼容性的问题

    代码

    自定义getStyle()代码

    function getStyle (obj, name) {
        if (obj.currentStyle) {
            return obj.currentStyle[name];
        }
        else {
            return getComputedStyle(obj)[name];
        }
    }
    

    完整html代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>getStyle</title>
        <style>
            div{
                 200px;
                height: 200px;
                background-color: brown;
            }
        </style>
        <script>
            function getStyle (obj, name) {
                if (obj.currentStyle) {
                    return obj.currentStyle[name];
    
                }
                else {
                    return getComputedStyle(obj)[name];
                }
            }
            window.onload = function () {
                // let box = document.querySelector("div");
                var box = document.getElementsByTagName("div")[0];
                var btn = document.getElementsByTagName("button")[0];
                box.style.width = "250px";
                box.style.height = "250px";
                box.style.backgroundColor = "skyblue";
                btn.onclick = function () {
                    alert(getStyle(box, "backgroundColor"));
                };
            };
        </script>
    </head>
    <body>
        <div></div>
        <button>fun</button>
    </body>
    </html>
    

    运行结果

    1. IE8

      2.IE11

      3.chrome

      4.firefox

  • 相关阅读:
    HTML+CSS简单实现导航栏二级下拉菜单
    原创 | 我的个人微信公众号
    原创 | 喂,在吗?
    NodeJs实现邮箱验证
    JS排序算法(二)冒泡排序
    JS排序算法(一) 快速排序
    前端常见的布局方式
    JS继承方式
    前端Node实现简易的文件上传下载
    原生js实现深度克隆
  • 原文地址:https://www.cnblogs.com/TomHe789/p/12676124.html
Copyright © 2020-2023  润新知