JS властивість CSSStyleDeclaration.filter


Загальний опис

element.style.filter - це властивість, яка дозволяє застосовувати візуальні ефекти до елементів HTML за допомогою різноманітних фільтрів. З її допомогою можна, наприклад, розмити зображення, змінити його яскравість, контрастність, насиченість тощо.

Властивість element.style.filter приймає рядок, що містить один або більше функцій фільтра, розділених пробілами. Кожна функція фільтра може мати свої параметри, які визначають інтенсивність або інші характеристики ефекту.

Щоб використовувати element.style.filter, спершу потрібно отримати доступ до елемента, до якого ви хочете застосувати фільтри. Це можна зробити за допомогою методів, таких як document.getElementById, document.querySelector або будь-яких інших способів вибору елементів у DOM.

// Отримуємо елемент за його id
let element = document.getElementById('myElement');

// Застосовуємо фільтр розмиття
element.style.filter = 'blur(5px)';

Поширені фільтри

  1. blur(): розмиває елемент. Параметр визначає радіус розмиття.

    element.style.filter = 'blur(10px)';
    
  2. brightness(): змінює яскравість елемента. Параметр більше 1 збільшує яскравість, менше 1 - зменшує.

    element.style.filter = 'brightness(1.5)';
    
  3. contrast(): змінює контрастність елемента. Значення більше 100% збільшує контрастність, менше 100% - зменшує.

    element.style.filter = 'contrast(200%)';
    
  4. grayscale(): перетворює елемент на відтінки сірого. Значення від 0% до 100%.

    element.style.filter = 'grayscale(100%)';
    
  5. sepia(): додає сепійний ефект до елемента. Значення від 0% до 100%.

    element.style.filter = 'sepia(50%)';
    

Комбінування фільтрів

Можна застосовувати кілька фільтрів одночасно, просто розділивши їх пробілами в одному рядку.

// Комбінування фільтрів розмиття та яскравості
element.style.filter = 'blur(5px) brightness(1.2)';

Видалення фільтрів

Щоб видалити всі фільтри з елемента, достатньо встановити властивість filter у порожній рядок або значення "none".

// Видалення всіх фільтрів
element.style.filter = '';
// або
element.style.filter = 'none';

Ця властивість є потужним інструментом для розробників, які хочуть покращити візуальну привабливість своїх веб-сторінок без використання графічного редактора.

автор: Bond

Порада

Не забувайте про продуктивність при використанні фільтрів. Застосування фільтрів може вплинути на швидкість рендерингу, особливо на мобільних пристроях або при використанні складних ефектів. Використовуйте фільтри економно і перевіряйте продуктивність вашого сайту на різних пристроях.

автор: Bond
Порада

Використовуйте element.style.filter для створення ефектів затемнення або освітлення зображень при наведенні. Це може покращити користувацький інтерфейс, роблячи його більш інтерактивним:

element.addEventListener('mouseover', () => {
    element.style.filter = 'brightness(0.5)';
});
element.addEventListener('mouseout', () => {
    element.style.filter = 'brightness(1)';
});

Цей підхід також може бути корисним для створення інтерактивних галерей зображень.

автор: Bond
Порада

Використовуйте анімацію CSS разом з element.style.filter для плавних переходів ефектів. Наприклад, щоб зробити плавний перехід розмиття під час наведення:

.element {
    transition: filter 0.3s ease;
}
element.addEventListener('mouseover', () => {
    element.style.filter = 'blur(3px)';
});
element.addEventListener('mouseout', () => {
    element.style.filter = 'none';
});

Це додасть елегантності вашим інтерфейсам, роблячи взаємодію з користувачем більш приємною.

автор: Bond

Синтаксис

element.style.filter

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
53 35 9.1 40 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
53 53 35 9.3

Приклади

+ запропонувати свій приклад у пісочниці

Цей приклад демонструє використання методу element.style.filter для додавання тіні до текстового елемента при натисканні та видалення цієї тіні при подвійному натисканні. Коли користувач клацає на текст з ідентифікатором myText, до нього додається тінь, яка робить текст більш виразним, а при подвійному натисканні тінь видаляється. Це може бути корисним для створення інтерактивних інтерфейсів, де потрібно підкреслювати важливі елементи.

HTML

<div id="myText">Демонстраційний елемент</div>

JS

let textElement = document.getElementById('myText');
textElement.addEventListener('click', function() {
    textElement.style.transition = 'filter 0.3s ease-in-out';
    textElement.style.filter = 'drop-shadow(5px 5px 10px rgba(0,0,0,0.5))';
});

textElement.addEventListener('dblclick', function() {
    textElement.style.transition = 'filter 0.3s ease-in-out';
    textElement.style.filter = 'none';
});
автор: Bond

У цьому прикладі використовується метод element.style.filter для створення ефекту чорно-білого зображення при наведенні курсора на зображення. Коли користувач наводить курсор на зображення з ідентифікатором myImage, зображення плавно стає чорно-білим, і при відведенні курсора воно повертається до свого початкового кольору. Цей підхід корисний для створення інтерактивних ефектів на веб-сторінках, що покращують користувацький досвід.

HTML

<img id="myImage" src="/img/logo.svg" width="100" alt="Демонстраційне зображення">

JS

let image = document.getElementById('myImage');
image.addEventListener('mouseover', function() {
    image.style.transition = 'filter 0.5s';
    image.style.filter = 'grayscale(100%)';
});

image.addEventListener('mouseout', function() {
    image.style.transition = 'filter 0.5s';
    image.style.filter = 'grayscale(0%)';
});
автор: Bond

У цьому прикладі користувач може налаштовувати яскравість, контраст і розмиття зображення за допомогою повзунків. Значення кожного повзунка оновлюється в режимі реального часу, що дозволяє спостерігати зміни на зображенні без перезавантаження сторінки. Цей приклад допомагає краще зрозуміти можливості властивості element.style.filter і як її можна застосовувати для створення інтерактивних і візуально привабливих елементів.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід