У меня есть текстовое поле ввода. Когда я нажимаю для ввода шестнадцатеричного значения без #, его цвет фона меняется на новый цвет, я печатаю. И цвет текста должен быть белым или черным от новой яркости цвета фона. Я могу это сделать, когда я нажимаю кнопку ввода после завершения ввода. Как я могу сделать это динамически, я имею в виду, что вы не входите в игру? Мои коды:Как проверить динамические изменения цвета фона
$(document).on("focus", "input[name='colorCode']", function(){
$(this).keyup(function (options) {
var myBgColor = "#" + $(this).val();
$(this).css("background-color", myBgColor);
var bgColor = $(this).css("background-color");
var settings = $.extend({
darkText: "#000",
lightText: "#fff"
}, options);
var rgb = bgColor.substring(bgColor.indexOf('(') + 1, bgColor.lastIndexOf(')')).split(/,\s*/),
red = rgb[0],
green = rgb[1],
blue = rgb[2],
brightness = Math.sqrt((.241 * (red * red)) + (.671 * (green * green)) + (.068 * (blue * blue)));
if (brightness > 128) {
$(this).css('color', settings.darkText);
} else {
$(this).css('color', settings.lightText);
}
});
})
Любые предложения, пожалуйста ...
EDIT: не должен нажать кнопку ввода, после ввода первого символа 3, нажатие любой клавиши изменяет цвет текста.
Какая часть вашего кода не изменяется динамически? –