rocket.style.position:none
даст вашему элементу стиль css position:none
.none
не является допустимым значением для свойства position
.
Вы можете увидеть значения позиций здесь -> Позиция CSS
По виду вашего кодавам нужно будет использовать display
вместо position
.
Кроме того, вы создаете переменную scrollExt
и не используете ее.Кроме того, вы создаете rocketClick
функцию, но не вызываете ее для своего элемента.
window.onscroll = function() {
goTop();
};
const goTop = function() {
const rocket = document.querySelector('.go-to-top');
const scrollExt = document.body.scrollTop;
if (scrollExt > 500 || document.documentElement.scrollTop > 500) {
rocket.style.display = 'block';
} else {
rocket.style.display = 'none';
}
};
const rocketClick = function() {
document.documentElement.scrollTop = 0;
};
main {
height:1500px;
background:red;
}
.go-to-top{
display: none;
z-index: 10;
position: fixed;
bottom: 40px;
right: 40px;
width: 40px;
height: 40px;
transform: rotate(-45deg);
color: black;
padding: 10px;
text-decoration: none;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.go-to-top i{
font-size: 50px;
}
.go-to-top:hover{
cursor: pointer;
text-decoration: none;
}
<main></main>
<div class="rocket" onclick=rocketClick()>
<a href="#" class="go-to-top">
rocket icon
</a>
</div>
Предложения:
Продолжайте использовать let
и const
.Не используйте var
.Также, используйте const
для своих функций.Вы не изменяете содержимое функций в любом месте, поэтому вы можете использовать const
вместо let.
Добавить анимацию (переход) к scrollTop
.