gpt4 book ai didi

javascript - 修复侧边栏上的错误并平滑滚动

转载 作者:行者123 更新时间:2023-11-28 03:07:47 25 4
gpt4 key购买 nike

我有一个固定的侧边栏,在内容 div 中可以平滑滚动,我在这个侧边栏中有 4 个链接,每个链接都指向一个带有 anchor 的部分,当单击该链接时,其状态会发生变化并采用“当前”类。问题是,如果我从第四个链接转到第三个链接,第二个链接的状态会发生变化。

    let mainNavLinks = document.querySelectorAll("a.link-timeline");
let mainSections = document.querySelectorAll("div.bloc-decennie");

let lastId;
let cur = [];

// passe to the observer
const options = {
root: document.getElementById('#all-story'), // The scroll area
rootMargin: '0% 0% -80% 0%',
threshold: 0
}

// The observer
const observer = new IntersectionObserver((entries, observer) => {

// Entries are all the items observed which have entered to the scroll area
entries.forEach(entry => {
// We only want the ones intersecting wuth our threshold
if (entry.isIntersecting) {
// map to the link
let link = document.querySelector('[href="#'+entry.target.id+'"]');
if (link) {
// Remove current class from all links
mainNavLinks.forEach(item => {
item.classList.remove("current");
});
// Add current to new target
link.classList.add("current");
}
}
})
}, options);

// foreach section we send to the observer
mainSections.forEach(target => {
observer.observe(target);
});
html {
scroll-behavior: smooth;
}

li a.current {
letter-spacing: -.5px;
font-size: 3.2rem;
line-height: 3.8rem;
font-weight: 500;
}

.bloc-decennie {
min-height: 600px;
}

@media (min-height: 300px) {
#sidebar-story {
position: fixed;
top: 0;
}
}
<html>
<header>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
</header>
<body>
<div class="">
<div class="row">
<div class="col-md-3 pb-5">
<ul class="text-align-right no-list-style pl-8" id="sidebar-story">
<li class="mb-5 cta-download"><a href="#decennie-1" class="link-timeline heading-small-regular">1977-1987</a></li>
<li class="mb-5 cta-download"><a href="#decennie-2" class="link-timeline heading-small-regular">1988-1998</a></li>
<li class="mb-5 cta-download"><a href="#decennie-3" class="link-timeline heading-small-regular">1999-2009</a></li>
<li class="mb-5 cta-download"><a href="#decennie-4" class="link-timeline heading-small-regular">2010-2019</a></li>
</ul>
</div>
<div class="col-md-4 pb-5" id="all-story">
<div class="bloc-decennie row" id="decennie-1">
<div class="col-12">
11111<br>Cum asperiores temporibus itaque consequatur quod inventore, quia quis explicabo dicta esse minus voluptatem reiciendis eveniet animi, necessitatibus illum dolorem doloremque repellat placeat, dolores eaque.
</div>
</div>
<div class="bloc-decennie row" id="decennie-2">
<div class="col-12">
2222<br>Cum asperiores temporibus itaque consequatur quod inventore, quia quis explicabo dicta esse minus voluptatem reiciendis eveniet animi, necessitatibus illum dolorem doloremque repellat placeat, dolores eaque.
</div>
</div>
<div class="bloc-decennie row" id="decennie-3">
<div class="col-12">
33333<br>Cum asperiores temporibus itaque consequatur quod inventore, quia quis explicabo dicta esse minus voluptatem reiciendis eveniet animi, necessitatibus illum dolorem doloremque repellat placeat, dolores eaque.
</div>
</div>
<div class="bloc-decennie row" id="decennie-4">
<div class="col-12">
44444<br>Cum asperiores temporibus itaque consequatur quod inventore, quia quis explicabo dicta esse minus voluptatem reiciendis eveniet animi, necessitatibus illum dolorem doloremque repellat placeat, dolores eaque.
</div>
</div>
</div>
</div>
</div>
</body>
</html>

最佳答案

.bloc-decennie {
min-height: 600px;
margin-top: 1px;
}

关于javascript - 修复侧边栏上的错误并平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60452927/

25 4 0
文章推荐: javascript - HTML5 localStorage 不适用于 Android WebView
文章推荐: python - 如何在