Скрипт затемнения фона сайта (за исключением некоторых блоков)
Не так давно я встретил замечательную идею в одном из блогов. При блокировке рекламы Адбоком, весь сайт становился черно-белым, а предупреждение оставалось цветным. К сожалению, реализация подобного опять натолкнулась на отсутствие поддержки фильтров в браузерах IE 11 и Edge. Да, можно было городить огород с кучей обходных маневров, Джиквери, библиотеками скриптов... но это явно не мой метод. Поэтому на подобный скрипт я решил «забить» и забыть.
И вот совсем недавно мне заказали скрипт затемнения всего сайта при заходе посетителя. Нужно было только оставить яркими блоки с рекламой. На удивление, сама идея реализации оказалась крайне простой. Хоть и пришлось повозиться. Мы просто делаем слой фиксированный слой с position: fixed; растянутый на весь экран width: 100%; height: 100%; и присваиваем ему, например, z-index: 9998. А нужному нам блоку или рекламе - z-index: 9999. В принципе, это все. Дальше нужно определять клик по ифрейму (рекламе) и скрывать наше затемнение.
Если использовать в CSS свойство pointer-events, можно накладывать слой, через который можно будет кликать и пользоваться сайтом как обычно.
Понятно, что сам я пока не собираюсь использовать подобное для Адсенса, например. Да и конечный скрипт вышел немного умнее, чем я тут описал. Он умеет работать с куки, запоминая посетителя, определять наличие нужных боков на странице и закрываться для владельцев Адблока.
Такая вот новогодняя разработка вышла.