dollar
@dollar
Делай добро и бросай его в воду.

Как засветлить любой div элемент?

Использую такую функцию:
//Скрыть элемент (на белом фоне)
function hideElementClever(div) {
	let hider = document.createElement('div');
	hider.style.position = 'absolute';
	hider.style.width = (div.clientWidth || 10) + 'px';
	hider.style.height = (div.clientHeight || 10) + 'px';
	hider.style.background = 'rgba(255,255,255,.7)';
	hider.style.top = '0';
	hider.style.pointerEvents = 'none';
	div.appendChild(hider);
}

Но эта функция криво работает, когда у элемента нестандартный стиль:
paddingLeft: 30px;
paddingRight: 30px;
margin: 0 -30px;

Как быть?
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
RAX7
@RAX7

при ресайзе придется все пересчитывать
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
На сам объект положить комбинацию из css filter например brightness и ещё что нибудь? С телефона не могу попробовать но может что то будет подходящее

Upd
Что-то в духе
filter: saturate(0.4) brightness(1.7) contrast(0.8);

https://developer.mozilla.org/en-US/docs/Web/CSS/filter
Ответ написан
Комментировать
@6eJIa9IzZzTeHb
https://jsfiddle.net/2kydzbgn/

Вот, можно обратно вынести в js

Если же нужно именно на js - нужно сделать аналог функции jQuery elem.outerWidth() / outerHeight();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы