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


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

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

element.style.clip використовується для створення масок або для обмеження області відображення елемента. Це може бути корисно для створення складних візуальних ефектів або для приховування частин елемента, що виходять за межі необхідної області. Наприклад, можна створити цікаву анімацію, де частини елемента поступово з'являються на екрані.

Ось приклад використання властивості clip для обрізання елемента:

let element = document.getElementById('clippedElement');
element.style.clip = 'rect(0px, 100px, 100px, 0px)';

У цьому прикладі елемент буде обрізаний до прямокутника з верхнім лівим кутом у точці (0, 0) та нижнім правим кутом у точці (100, 100). Все, що знаходиться за межами цього прямокутника, буде приховано.

Важливо зазначити, що властивість clip застосовується тільки до елементів з абсолютним або фіксованим позиціонуванням (position: absolute або position: fixed). Інакше властивість не має ефекту. Наприклад:

let element = document.getElementById('clippedElement');
element.style.position = 'absolute';
element.style.clip = 'rect(0px, 50px, 50px, 0px)';

Це гарантує, що clip працюватиме належним чином.

Для створення анімацій можна динамічно змінювати значення властивості clip. Наприклад, за допомогою функції setInterval можна поступово змінювати значення, щоб створити ефект поступового відкриття елемента:

let element = document.getElementById('animatedElement');
element.style.position = 'absolute';
let top = 0;
let interval = setInterval(function() {
  if (top >= 100) {
    clearInterval(interval);
  } else {
    top += 1;
    element.style.clip = rect(${top}px, 100px, 100px, 0px);
  }
}, 10);

У цьому прикладі верхня межа обрізання top поступово збільшується, поки не досягне 100 пікселів, створюючи ефект руху.

Ще одним корисним застосуванням властивості clip є створення масок для контенту. Наприклад, можна показувати тільки певну частину зображення або відео. Це дозволяє створювати інтерактивні ефекти без використання додаткових елементів або складних структур коду.

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

автор: Bond

Порада

Пам'ятайте, що властивість clip застаріла і була замінена властивістю clip-path. Вона надає більше можливостей для управління видимими областями елементів, включаючи складні форми. Проте clip все ще підтримується у багатьох браузерах, і може бути корисною для простих випадків. Будьте обережні з кросбраузерною сумісністю і розгляньте можливість переходу на clip-path:

let element = document.getElementById('clippedElement');
element.style.clipPath = 'inset(10px 10px 10px 10px)';

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

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

let textElement = document.getElementById('textElement');
textElement.style.position = 'absolute';
let left = 0;
function revealText() {
  if (left >= 200) return;
  left += 2;
  textElement.style.clip = rect(0px, ${left}px, 20px, 0px);
  requestAnimationFrame(revealText);
}
requestAnimationFrame(revealText);

автор: Bond

Синтаксис

element.style.clip

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 7 12 4
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

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

Цей приклад дозволяє користувачам взаємодіяти з зображенням, обрізаючи його частини за допомогою кнопок. Кожна кнопка змінює значення властивості clip, щоб обрізати верхню, праву, нижню або ліву частину зображення. Користувачі також можуть скинути обрізання до початкового стану, натиснувши кнопку "Reset Clip". Це демонструє принцип роботи властивості clip і її використання для надання елементам динамічних візуальних ефектів.

автор: Bond

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

HTML

<img id="imageElement" src="/img/logo.svg" width="200" alt="Лого">

JS

let imageElement = document.getElementById('imageElement');
imageElement.style.position = 'absolute';
imageElement.style.clip = 'rect(0px, 0px, 100px, 0px)';

let width = 0;

function expandClip() {
    if (width >= 200) return;

    width += 2;
    imageElement.style.clip = `rect(0px, ${width}px, 100px, 0px)`;
    requestAnimationFrame(expandClip);
}

requestAnimationFrame(expandClip);
автор: Bond

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

HTML

<p id="textElement">Довгий рядок тексту, який поступово відкривається і закривається</p>

JS

let textElement = document.getElementById('textElement');
textElement.style.position = 'absolute';
textElement.style.clip = 'rect(0px, 100px, 40px, 0px)';

let right = 100;
let direction = 1;

function animateClip() {
    if (right >= 300 || right <= 100) {
        direction *= -1;
    }

    right += 2 * direction;
    textElement.style.clip = `rect(0px, ${right}px, 40px, 0px)`;
    requestAnimationFrame(animateClip);
}

requestAnimationFrame(animateClip);
автор: 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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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