У меня есть кнопка «прокрутки вниз» на моем веб-сайте, при нажатии на которую вы перейдете к указанной точке привязки. У меня сейчас эта кнопка настроена на постепенное появление и исчезновение, но это вызывает проблемы с наложением и выглядит скачкообразно, и я хотел бы, чтобы прозрачность постепенно уменьшалась по мере приближения к точке.
I хотел бы реализовать что-то подобное:
var target = $('.godown'),
targetHeight = target.outerHeight();
$(document).scroll(function(e) {
var scrollPercent = (targetHeight - window.scrollY) / targetHeight;
if (scrollPercent >= 0) {
target.css('opacity', 1 - scrollPercent);
}
});
Однако, похоже, это не работает с моим кодом, здесь . Итак, в настоящее время я использую стандартное наложение / затухание, которое выглядит отрывистым, когда появляется через оверлей, и это не то, что я хочу. Я хотел бы внедрить приведенный выше код на свой сайт, но не могу заставить его работать.
$(window).scroll(function() {
if ($(this).scrollTop() > 0) {
$('.godown').fadeOut();
} else {
$('.godown').fadeIn();
}
});
@import url(https://fonts.googleapis.com/css?family=Josefin+Sans:300,400);
html {
scroll-behavior: smooth;
}
header .overlay {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-color: black;
opacity: 0.5;
z-index: 1;
}
.godown a {
position: fixed;
bottom: 1vh;
left: 50%;
z-index: 1;
display: inline-block;
-webkit-transform: translate(0, -50%);
transform: translate(0, -50%);
color: #fff;
font: normal 400 20px/1 'Josefin Sans', sans-serif;
letter-spacing: .1em;
text-decoration: none;
transition: opacity .3s;
opacity: 1;
}
.godown a:hover {
opacity: .5;
}
#scroller a {
padding-top: 60px;
}
#scroller a span {
position: absolute;
top: 0;
left: 50%;
width: 24px;
height: 24px;
margin-left: -12px;
border-left: 1px solid #fff;
border-bottom: 1px solid #fff;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
box-sizing: border-box;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<header>
<div class="overlay"></div>
</header>
<body style="background-color: red;">
<section id="scroller" class="godown">
<div>
<a href="#anchor"><span></span>Scroll</a>
</div>
</section>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p id="anchor">anchor point</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
<p>a</p>
</body>