Показать сообщение отдельно
  #4 (permalink)  
Старый 09.09.2019, 05:19
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<div style="height: 200vh;">Крути вниз!</div>
	
<button class="scroll-to-top-button" onclick="window.scrollTo(0, 0);">▲</button>
<script>
addEventListener("scroll", () => {
	document.documentElement.classList.toggle("scroll-to-top-button-is-visible", scrollY > 0.5 * innerHeight)
}, { passive: true });
</script>
<style>
html {
	scroll-behavior: smooth;
}
.scroll-to-top-button {
	font-size: 300%;
	border: none;
	outline: none;
	width: 1.5em;
	height: 1.5em;
	background: #345;
	position: fixed;
	right: .2em;
	bottom: .2em;
	border-radius: .2em;
	line-height: 0;
	color: white;
	opacity: 0;
	pointer-events: none;
	transition: 300ms opacity;
}
.scroll-to-top-button-is-visible .scroll-to-top-button {
	opacity: 1;
	pointer-events: all;
}
</style>


UPD В данном случае outline: none; не ломает доступность, поскольку переместиться в начало страницы при помощи клавиатуры можно нажав клавишу Home, а на сенсорном экране обратной связью об удачном нажатии кнопки будет само перемещение в начало страницы.

Последний раз редактировалось Malleys, 09.09.2019 в 05:35.
Ответить с цитированием