🏠 | 💻 PC | Программирование | JS |

Вертикальный скролл в JavaScript

Иногда бывает нужно отслеживать как пользователь скроллит страницу.

Например, Вы можете отслеживать скролл вниз для того чтобы поднять баннер до верха страницы и держать его там.

А если пользователь открутит страницу к самому верху - вернуть баннер в исходное положение.

Если Вы читаете эту статью с достаточно широкого экрана, то можете увидеть подобный баннер справа.

Впервые я сделал такой баннер для сайта HeiHei.ru

Нужно воспользоваться

window.addEventListener('scroll', () => { const scrolled = window.scrollY;

Задача - найти элемент с классом rightBanner. Я заранее знаю, что он будет один, но в целом это не важно.

'use strict' let rb = document.getElementsByClassName('rightBanner'); /* Находим элементы с классом rightBanner */ let rightBannerElement = rb[0]; /* Нам нужен первый, к тому же он единственный */ window.addEventListener('scroll', () => { const scrolled = window.scrollY; if (scrolled >= 340) { rightBannerElement.style.position='fixed'; rightBannerElement.style.top='50px'; } /* Зафиксировали баннер после того */ /* как пользователь отскролил вниз */ else if (scrolled < 340) { rightBannerElement.style.position='absolute'; rightBannerElement.style.top='480px'; /* Вернули обратно, никаких хитростей */ /* в современных браузерах придумывать не нужно */ });

↓ Статьи о JavaScript ↓
Программирование на JavaScript
Сортировка массива
Определить ширину экрана
Определить тип элемента
Mocha Framework - тестирование JavaScript
TicTacToe
Ошибки
Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: