СобÑÑие пÑокÑÑÑки scroll позволÑÐµÑ ÑеагиÑоваÑÑ Ð½Ð° пÑокÑÑÑÐºÑ ÑÑÑаниÑÑ Ð¸Ð»Ð¸ ÑлеменÑа. ÐÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ Ñ
оÑоÑиÑ
веÑей, коÑоÑÑе пÑи ÑÑом можно ÑделаÑÑ.
ÐапÑимеÑ:
- ÐоказаÑÑ/ÑкÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑлеменÑÑ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ инÑоÑмаÑиÑ, оÑновÑваÑÑÑ Ð½Ð° Ñом, в какой ÑаÑÑи докÑменÑа Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ.
- ÐодгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе, когда полÑзоваÑÐµÐ»Ñ Ð¿ÑокÑÑÑÐ¸Ð²Ð°ÐµÑ ÑÑÑаниÑÑ Ð²Ð½Ð¸Ð· до конÑа.
ÐÐ¾Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ°Ñ ÑÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑекÑÑей пÑокÑÑÑки:
window.addEventListener('scroll', function() {
document.getElementById('showScroll').innerHTML = pageYOffset + 'px';
});
РдейÑÑвии:
ТекÑÑÐ°Ñ Ð¿ÑокÑÑÑка = пÑокÑÑÑиÑе окно
СобÑÑие scroll ÑабоÑÐ°ÐµÑ ÐºÐ°Ðº на window, Ñак и на дÑÑгиÑ
ÑлеменÑаÑ
, на коÑоÑÑÑ
вклÑÑена пÑокÑÑÑка.
ÐÑедоÑвÑаÑение пÑокÑÑÑки
Ðак можно ÑделаÑÑ ÑÑо-Ñо непÑокÑÑÑиваемÑм?
ÐелÑÐ·Ñ Ð¿ÑедоÑвÑаÑиÑÑ Ð¿ÑокÑÑÑкÑ, иÑполÑзÑÑ event.preventDefault() в обÑабоÑÑике onscroll, поÑÐ¾Ð¼Ñ ÑÑо он ÑÑабаÑÑÐ²Ð°ÐµÑ Ð¿Ð¾Ñле Ñого, как пÑокÑÑÑка Ñже пÑоизоÑла.
Ðо можно пÑедоÑвÑаÑиÑÑ Ð¿ÑокÑÑÑкÑ, иÑполÑзÑÑ event.preventDefault() на ÑобÑÑии, коÑоÑое вÑзÑÐ²Ð°ÐµÑ Ð¿ÑокÑÑÑкÑ, напÑимеÑ, на ÑобÑÑии keydown Ð´Ð»Ñ ÐºÐ»Ð°Ð²Ð¸Ñ pageUp и pageDown.
ÐÑли поÑÑавиÑÑ Ð½Ð° ниÑ
обÑабоÑÑики, в коÑоÑÑÑ
вÑзваÑÑ event.preventDefault(), Ñо пÑокÑÑÑка не наÑнÑÑÑÑ.
СпоÑобов иниÑииÑоваÑÑ Ð¿ÑокÑÑÑÐºÑ Ð¼Ð½Ð¾Ð³Ð¾, поÑÑÐ¾Ð¼Ñ Ð±Ð¾Ð»ÐµÐµ надÑжнÑй ÑпоÑоб â иÑполÑзоваÑÑ CSS, ÑвойÑÑво overflow.
ÐÐ¾Ñ Ð½ÐµÑколÑко задаÑ, коÑоÑÑе Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑеÑиÑÑ Ð¸Ð»Ð¸ пÑоÑмоÑÑеÑÑ, ÑÑÐ¾Ð±Ñ ÑвидеÑÑ Ð¿Ñименение onscroll.
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)