JS властивість CSSStyleDeclaration.backgroundAttachment
Загальний опис
backgroundAttachment
є властивістю об'єкта style
, що належить до будь-якого HTML-елемента. Ця властивість дозволяє встановлювати або отримувати значення властивості CSS background-attachment
, яка визначає, чи фонове зображення прокручується разом із вмістом елемента або залишається нерухомим при прокручуванні. Основна суть backgroundAttachment
полягає в тому, щоб контролювати поведінку фону під час прокручування, що може бути корисним для створення ефекту паралакса та інших візуальних ефектів на веб-сторінках.
Основні сфери застосування backgroundAttachment
включають веб-дизайн, де необхідно створити візуальні ефекти фону, який залишається нерухомим (fixed) або прокручується (scroll) разом із вмістом. Це може бути використано для виділення певних розділів сторінки, покращення користувацького досвіду або створення цікавих анімаційних ефектів.
Розглянемо приклади використання backgroundAttachment
від найпростіших випадків до складніших.
Перший приклад показує, як встановити фон, що залишається нерухомим при прокручуванні сторінки:
<!DOCTYPE html>
<html>
<head>
<style>
#myDiv {
width: 100%;
height: 300px;
border: 1px solid black;
background-image: url('background.jpg');
}
</style>
</head>
<body>
<div id="myDiv">Це див</div>
<button onclick="setFixedBackground()">Зробити фон нерухомим</button>
<script>
function setFixedBackground() {
let element = document.getElementById('myDiv');
element.style.backgroundAttachment = 'fixed';
}
</script>
</body>
</html>
У цьому прикладі, коли користувач натискає кнопку, викликається функція setFixedBackground
, яка встановлює значення backgroundAttachment
на fixed
. Це означає, що фонове зображення залишиться нерухомим при прокручуванні сторінки.
Далі розглянемо приклад, де фон елемента прокручується разом із вмістом:
let element = document.getElementById('myDiv');
element.style.backgroundAttachment = 'scroll';
У цьому випадку, при натисканні на кнопку, викликається функція setScrollBackground
, яка встановлює значення backgroundAttachment
на scroll
. Це означає, що фонове зображення буде прокручуватися разом із вмістом елемента.
Також можливе встановлення значення local
, яке фіксує фонове зображення відносно елемента, а не всієї сторінки:
let element = document.getElementById('myDiv');
element.style.backgroundAttachment = 'local';
У цьому прикладі, при натисканні на кнопку, викликається функція setLocalBackground
, яка встановлює значення backgroundAttachment
на local
. Це означає, що фонове зображення буде прокручуватися разом із вмістом елемента, але не всієї сторінки.
Таким чином, властивість backgroundAttachment
є потужним інструментом для керування поведінкою фону елементів під час прокручування. Це дозволяє розробникам створювати багаті візуальні ефекти та покращувати користувацький досвід, забезпечуючи гнучкість і контроль над стилями фону в веб-додатках.
Порада: | Якщо ви використовуєте |
Порада: | Порада 4: |
Порада: | Значення |
Синтаксис
element.style.backgroundAttachment
Значення
Return
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
3 |
8 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
- |
- |
Приклади
У цьому прикладі користувач може вибрати різні режими backgroundAttachment
через випадаюче меню (scroll
, fixed
, local
) та побачити, як фон веде себе при прокручуванні. Наприклад, при виборі fixed
фон залишатиметься зафіксованим, тоді як зміна на scroll
змусить фон прокручуватися разом зі сторінкою. Цей приклад допомагає краще зрозуміти, як ця властивість впливає на взаємодію фону з прокруткою сторінки.
У цьому прикладі ми отримуємо доступ до елемента за його id
та встановлюємо фіксоване фонове зображення, використовуючи властивості backgroundImage
та element.style.backgroundAttachment = 'fixed'
. Це створить паралаксний ефект, коли зображення залишатиметься нерухомим під час прокручування вмісту.
const element = document.getElementById('myElement');
// Встановлюємо фіксоване фонове зображення
element.style.backgroundImage = 'url("image.jpg")';
element.style.backgroundAttachment = 'fixed';
У цьому прикладі ми отримуємо всі секції з класом .section
та для кожної секції встановлюємо фіксоване фонове зображення на основі атрибута data-image
елемента .bg-image
. Ми також додаємо обробник події для прокручування, який перевіряє, чи секція видима у вікні, і динамічно змінює властивість backgroundAttachment
на 'fixed'
або 'scroll'
відповідно.
Цей приклад демонструє більш складне використання backgroundAttachment
, де властивість змінюється динамічно залежно від положення секції на сторінці. Це може бути корисно для створення ефекту паралаксу, коли фонові зображення фіксуються лише тоді, коли відповідні секції видимі у вікні.
const sections = document.querySelectorAll('.section');
sections.forEach(section => {
const bgImage = section.querySelector('.bg-image');
// Встановлюємо фіксоване фонове зображення для кожної секції
bgImage.style.backgroundImage = `url('${bgImage.dataset.image}')`;
bgImage.style.backgroundAttachment = 'fixed';
// Додаємо обробник події для прокручування
window.addEventListener('scroll', () => {
const scrollPosition = window.pageYOffset;
const sectionTop = section.offsetTop;
const sectionHeight = section.offsetHeight;
// Перевіряємо, чи секція видима у вікні
if (scrollPosition >= sectionTop && scrollPosition < sectionTop + sectionHeight) {
bgImage.style.backgroundAttachment = 'fixed';
} else {
bgImage.style.backgroundAttachment = 'scroll';
}
});
});