简体   繁体   English

根据背景颜色更改汉堡菜单的颜色

[英]Change color of a hamburger menu depending on the background color

I'm working on a polymer project and i want to change the color of my hamburger menu, depending on the background-color, and using the .css function by JQuery. 我正在研究一个聚合物项目,我想根据背景颜色更改汉堡菜单的颜色,并使用JQuery的.css函数。 For example, if the background-color is blue, i want my button to be white. 例如,如果背景颜色为蓝色,则我希望按钮为白色。 this is my code : 这是我的代码:

    <paper-menu-button>
      <paper-icon-button id="menuBurger" icon="menu" slot="dropdown-trigger" style="background-color: yellow"></paper-icon-button>
      <paper-listbox slot="dropdown-content">
        <paper-item>Share</paper-item>
        <paper-item>Settings</paper-item>
        <paper-item>Help</paper-item>
      </paper-listbox>
    </paper-menu-button>

    <script type="text/javascript">
      $(document).ready(function(){
        if ($("#menuBurger").css("background-color") === "yellow") {
          $("#menuBurger").css('color', 'red');
        }
      });
    </script>

You need to compare that background-color with the corresponsing rgb value as css("background-color") is giving the rgb value of yellow . 您需要将该background-color与相应的rgb值进行比较,因为css("background-color")给出的rgb值为yellow

 $(document).ready(function(){ if ($("#menuBurger").css("background-color") === "rgb(255, 255, 0)") { $("#menuBurger").css('color', 'red'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <paper-menu-button> <paper-icon-button id="menuBurger" icon="menu" slot="dropdown-trigger" style="background-color: yellow">ICON</paper-icon-button> <paper-listbox slot="dropdown-content"> <paper-item>Share</paper-item> <paper-item>Settings</paper-item> <paper-item>Help</paper-item> </paper-listbox> </paper-menu-button> 

jQuery returns the element color in RGB format jQuery以RGB格式返回元素颜色

But if you do not want to do that then you can assign a hex color #ffff00 which corresponds to yellow and then create a custom function that will convert rgb to hex value as in rgb2hex . 但是,如果您不想这样做,则可以分配与yellow相对应的十六进制颜色#ffff00 ,然后创建一个自定义函数,该函数会将rgb转换为hex值,如rgb2hex

 $(document).ready(function(){ function rgb2hex(orig){ var rgb = orig.replace(/\\s/g,'').match(/^rgba?\\((\\d+),(\\d+),(\\d+)/i); return (rgb && rgb.length === 4) ? "#" + ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) + ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) + ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : orig; } var burgerbackground = $("#menuBurger").css("background-color"); if (rgb2hex(burgerbackground) === "#ffff00") { $("#menuBurger").css('color', 'red'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <paper-menu-button> <paper-icon-button id="menuBurger" icon="menu" slot="dropdown-trigger" style="background-color: #ffff00">ICON</paper-icon-button> <paper-listbox slot="dropdown-content"> <paper-item>Share</paper-item> <paper-item>Settings</paper-item> <paper-item>Help</paper-item> </paper-listbox> </paper-menu-button> 

Simpy add a div with width, height as zero. Simpy添加一个div,宽度,高度为零。 Set it's background to the background color you want to compare with and then do this way 将其背景设置为您要与之比较的背景颜色,然后执行此方法

 if ($("#menuBurger").css("background-color") == $("#test").css("background-color"))

Here is the snipped 这是被抢断的

 var testColor = "yellow" $("#test").css('background-color','yellow') $(document).ready(function(){ if ($("#menuBurger").css("background-color") == $("#test").css("background-color")) { $("#menuBurger").css('color', 'red'); } }); 
 #menuBurger{ background-color : "yellow" } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <paper-menu-button> <paper-icon-button id="menuBurger" icon="menu" slot="dropdown-trigger" style="background-color: #ffff00">ICON</paper-icon-button> <paper-listbox slot="dropdown-content"> <paper-item>Share</paper-item> <paper-item>Settings</paper-item> <paper-item>Help</paper-item> <div id="test"></div> </paper-listbox> </paper-menu-button> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM