jquery css color value returns RGB?

后端 未结 3 1751
旧巷少年郎
旧巷少年郎 2020-12-06 00:58

In my CSS file:

a, a:link, a:visited { color:#4188FB; }
a:active, a:focus, a:hover { color:#FFCC00; }

I tried with:

var lin         


        
相关标签:
3条回答
  • 2020-12-06 01:21

    Here is my take. Simple and concise.

    (function($) {
      $.fn.getHexBackgroundColor = function() {
        return (function(rgb) {
          return '#' + (!rgb
            ? 'FFFFFF'
            : rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/)
                 .slice(1)
                 .map(x => ('0' + parseInt(x).toString(16)).slice(-2))
                 .join('')
                 .toUpperCase());
        })($(this).css('background-color'));
      }
    })(jQuery);
    
    $(function() {
      $('#color-rgb').text($('.foo').css('background-color'));
      $('#color-hex').text($('.foo').getHexBackgroundColor());
    });
    .foo {
      background: #F74;
      width: 100px;
      height: 100px;
    }
    
    label { font-weight: bold; }
    label:after { content: ': '; }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="foo"></div>
    <label>RGB</label><span id="color-rgb">UNDEF</span><br />
    <label>HEX</label><span id="color-hex">UNDEF</span>

    0 讨论(0)
  • 2020-12-06 01:29

    Some adjustes to function

    $.fn.getHexBackgroundColor = function() {
        var rgb = $(this).css('background-color');
        if (!rgb) {
            return '#FFFFFF'; //default color
        }
        var hex_rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 
        function hex(x) {return ("0" + parseInt(x).toString(16)).slice(-2);}
        if (hex_rgb) {
            return "#" + hex(hex_rgb[1]) + hex(hex_rgb[2]) + hex(hex_rgb[3]);
        } else {
            return rgb; //ie8 returns background-color in hex format then it will make                 compatible, you can improve it checking if format is in hexadecimal
        }
    }
    
    0 讨论(0)
  • 2020-12-06 01:37

    Here you go, this will allow you to use $(selector).getHexBackgroundColor() to return the hex value easily :

    $.fn.getHexBackgroundColor = function() {
        var rgb = $(this).css('background-color');
        rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
        function hex(x) {return ("0" + parseInt(x).toString(16)).slice(-2);}
        return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
    }
    
    0 讨论(0)
提交回复
热议问题