[英]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.