MediaWiki:Common.js: различия между версиями
Страница интерфейса MediaWiki
Дополнительные действия
Rirma4ch (обсуждение | вклад) Нет описания правки Метка: отменено |
Rirma4ch (обсуждение | вклад) Нет описания правки Метка: отменено |
||
| Строка 171: | Строка 171: | ||
const btnUp = { | const btnUp = { | ||
el: document.querySelector('.btn-up'), | el: document.querySelector('.btn-up'), | ||
scrolling: false, | |||
show() { | show() { | ||
this.el.classList.remove('btn-up_hide'); | if (this.el.classList.contains('btn-up_hide') && !this.el.classList.contains('btn-up_hiding')) { | ||
this.el.classList.remove('btn-up_hide'); | |||
this.el.classList.add('btn-up_hiding'); | |||
window.setTimeout(() => { | |||
this.el.classList.remove('btn-up_hiding'); | |||
}, 300); | |||
} | |||
}, | }, | ||
hide() { | hide() { | ||
this.el.classList.add('btn-up_hide'); | if (!this.el.classList.contains('btn-up_hide') && !this.el.classList.contains('btn-up_hiding')) { | ||
this.el.classList.add('btn-up_hiding'); | |||
window.setTimeout(() => { | |||
this.el.classList.add('btn-up_hide'); | |||
this.el.classList.remove('btn-up_hiding'); | |||
}, 300); | |||
} | |||
}, | }, | ||
addEventListener() { | addEventListener() { | ||
// при прокрутке окна (window) | |||
window.addEventListener('scroll', () => { | window.addEventListener('scroll', () => { | ||
const scrollY = window.scrollY || document.documentElement.scrollTop; | const scrollY = window.scrollY || document.documentElement.scrollTop; | ||
scrollY > 400 | if (this.scrolling && scrollY > 0) { | ||
return; | |||
} | |||
this.scrolling = false; | |||
// если пользователь прокрутил страницу более чем на 200px | |||
if (scrollY > 400) { | |||
// сделаем кнопку .btn-up видимой | |||
this.show(); | |||
} else { | |||
// иначе скроем кнопку .btn-up | |||
this.hide(); | |||
} | |||
}); | }); | ||
// при нажатии на кнопку .btn-up | |||
document.querySelector('.btn-up').onclick = () => { | document.querySelector('.btn-up').onclick = () => { | ||
this.scrolling = true; | |||
this.hide(); | |||
// переместиться в верхнюю часть страницы | |||
window.scrollTo({ | window.scrollTo({ | ||
top: 0, | top: 0, | ||