Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

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

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

Властивість element.style.position визначає метод позиціонування елемента у веб-документі. Вона може приймати значення static, relative, absolute, fixed або sticky. Від обраного значення залежить, як саме елемент буде розташований у контейнері, чи буде він прокручуватися разом зі сторінкою, та як він взаємодіятиме з іншими елементами на сторінці.

Значення властивості

  • static (за замовчуванням): Елемент розташовується відповідно до нормального потоку документа. Властивості top, right, bottom, left не застосовуються.
  • relative: Елемент розташовується відповідно до нормального потоку, але можна змістити його відносно початкового положення за допомогою властивостей top, right, bottom, left.
  • absolute: Елемент позиціонується відносно найближчого предка, який має позиціонування (окрім static). Якщо такого предка немає, елемент позиціонується відносно сторінки.
  • fixed: Елемент позиціонується відносно вікна браузера і не змінює своє положення при прокручуванні сторінки.
  • sticky: Елемент веде себе як relative, поки не досягне певної точки прокручування, після чого веде себе як fixed.

Приклад використання

// Отримання значення властивості position
const element = document.getElementById('myElement');
console.log(element.style.position); // Виведе значення властивості

// Встановлення значення властивості position
element.style.position = 'absolute';
element.style.top = '50px';
element.style.left = '100px';

У цьому прикладі ми спочатку отримуємо доступ до елемента з ідентифікатором myElement, виводимо його поточне значення position (якщо воно задане), а потім встановлюємо його в absolute та зміщуємо на 50 пікселів вниз та на 100 пікселів вправо.

Застосування в реальних сценаріях

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

// Створення фіксованого заголовка
const header = document.getElementById('header');
header.style.position = 'fixed';
header.style.top = '0';
header.style.width = '100%';

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

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

Порада:

Використання position: fixed для створення завжди видимих елементів, таких як навігаційні панелі або кнопки повернення до верхньої частини сторінки, є ще однією корисною порадою. Елемент із position: fixed не змінює свого положення при прокручуванні сторінки, що робить його ідеальним для таких випадків. Наприклад, header.style.position = 'fixed'; header.style.top = '0'; закріпить заголовок у верхній частині вікна.

Порада:

Варто пам’ятати про використання значення sticky, яке дозволяє елементам залишатися на місці до досягнення певної точки прокручування, після чого вони залишаються фіксованими. Це зручно для створення "липких" заголовків або бокових панелей, які прокручуються разом із контентом до певної точки. Наприклад, header.style.position = 'sticky'; header.style.top = '0'; створить заголовок, який залишатиметься видимим при прокручуванні.

Порада:

Важливо враховувати контекст використання властивості position у поєднанні з іншими CSS-властивостями, такими як z-index. Використання z-index дозволяє контролювати порядок накладання елементів з різними значеннями position. Наприклад, element.style.position = 'absolute'; element.style.zIndex = '10'; забезпечить, що елемент завжди буде на передньому плані, якщо інші елементи мають нижчий z-index.

Синтаксис

element.style.position

Значення

Return

Переглядачі

Переглядач

1

1

3

8

12

Переглядач

4.4

18

4

1

Переглядач

-

-

Приклади


У цьому прикладі користувач може переміщати червоний блок по сторінці за допомогою кнопок. Блок спочатку позиціонується в центрі контейнера за допомогою position: absolute і значень top та left. Кожне натискання кнопки змінює відповідну координату блоку, дозволяючи йому рухатися по сторінці. Це наочно демонструє, як можна динамічно змінювати положення елемента за допомогою властивості element.style.position.

У цьому прикладі ми створюємо випадаюче меню, яке з'являється при натисканні на кнопку. Властивість position: absolute дозволяє меню з'явитися прямо під кнопкою, незалежно від поточного розташування кнопки на сторінці. Це корисно для реалізації динамічних інтерфейсів користувача, де елементи повинні з'являтися в певних позиціях відносно інших елементів.

const menuButton = document.getElementById('menuButton');
const dropdownMenu = document.getElementById('dropdownMenu');

menuButton.addEventListener('click', function() {
    if (dropdownMenu.style.display === 'none' || dropdownMenu.style.display === '') {
        dropdownMenu.style.display = 'block';
        dropdownMenu.style.position = 'absolute';
        dropdownMenu.style.top = `${menuButton.offsetTop + menuButton.offsetHeight}px`;
        dropdownMenu.style.left = `${menuButton.offsetLeft}px`;
    } else {
        dropdownMenu.style.display = 'none';
    }
});

Цей приклад демонструє створення плаваючої кнопки, яка з'являється при прокручуванні сторінки вниз і дозволяє користувачеві швидко повернутися до верхньої частини сторінки. Властивість position: fixed забезпечує, що кнопка залишається в одному і тому ж місці в нижньому правому куті вікна браузера, незалежно від прокручування сторінки. Це зручно для покращення навігації на довгих веб-сторінках.

const scrollButton = document.createElement('button');
scrollButton.innerText = 'Up';
document.body.appendChild(scrollButton);

scrollButton.style.position = 'fixed';
scrollButton.style.bottom = '20px';
scrollButton.style.right = '20px';
scrollButton.style.display = 'none';

window.addEventListener('scroll', function() {
    if (window.scrollY > 100) {
        scrollButton.style.display = 'block';
    } else {
        scrollButton.style.display = 'none';
    }
});

scrollButton.addEventListener('click', function() {
    window.scrollTo({ top: 0, behavior: 'smooth' });
});