2016-03-30 3 views
1

У меня есть простой вопрос, но что не ответил раньше:Если цвет фона превосходит x, то измените цвет?

У меня есть вариант, который позволит посетителям изменить background-color, и я хотел бы, чтобы мой сценарий изменить шрифт color к белому, когда background-color темна и вице- -versa.

Есть ли простой способ сделать это в php или javascript/jquery?

Может быть что-то вроде (концепции):

#1599FF == 15 + 99 + 255 == 369; 

369/((255*3)/2) == 369/382.5 == bright; 
+0

Цвет фона кузова? – Flatlineato

+1

'# 1599FF == 429'! try 'parseInt (colorString.substring (1,3), 16) + parseInt (colorString.substring (3,5), 16) + parseInt (colorString.substring (5,7), 16)' (потому что 'hex 99 = = dec 153') –

+1

Я думаю, вы могли бы сделать это с помощью CSS 3 и забыть о JS, пример здесь http://stackoverflow.com/questions/16981763/invert-css-font-color-depending-on-background-color – cralfaro

ответ

2

Я согласен с gavgrif ответить на его один из самых простых способов для статического BGCOLOR, поэтому если пользователь собирается выбрать динамический цвет в качестве фона, то его лучше измените цвет текста в соответствии с

В приведенном ниже примере JS Fiddle на загрузке страницы я получаю значение bg фона, т. е. rgb (220,110,140), беря его среднее значение и сравнивая с 127,5 (в среднем, то есть (255,255,255)), если его больше я делаю цвет текста имеет черный цвет текста другого цвета белый

https://jsfiddle.net/swaminathang/ezg47hag/2/

<div id="bgblock" > 
<h1 id="textColor"> 
Hello world 
</h1> 

</div> 

#bgblock{ 
width:400px; 
    height:200px; 
    background-color:#000000; 
} 

$(document).ready(function() { 
var bgColorString , hexvalue,hexvalue1,hexvalue2,hexvalue3 
bgColorString = $("#bgblock").css('backgroundColor').toString(); 
hexvalue = bgColorString.split("(")[1].split(")")[0] 

hexvalue1 = parseInt(hexvalue.split(",")[0]) ; 
hexvalue2 = parseInt(hexvalue.split(",")[1]) ; 
hexvalue3 = parseInt(hexvalue.split(",")[2]) ; 

var coloravg = (hexvalue1 + hexvalue2+hexvalue3)/3; 
if(coloravg > 127.5){ 
$("#textColor").css("color","black"); 
}else{ 
$("#textColor").css("color","white"); 
} 


}); 
+0

Yess perfect !! Ваш ответ goog, почему бы не скопировать его в скрипку, потому что скрипка, похоже, не обновилась? –

Смежные вопросы