zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    「SOL」开关(LOJ)
    「SOL」星际迷航(LOJ)
    「NOTE」概率生成函数
    「SOL」谢特(LOJ)
    「SOL」重建计划(BZOJ)
    「SOL」Tug of War(洛谷)
    「SOL」同余方程(LOJ)
    「SOL」Bad Cryptography(Codeforces)
    「SOL」小A与两位神仙(洛谷)
    「SOL」Social Distance(AtCoder)
  • 原文地址:https://www.cnblogs.com/TomHe789/p/12676124.html
Copyright © 2011-2022 走看看