【发布时间】:2020-09-14 10:48:58
【问题描述】:
我刚开始编码,我在某个地方遇到了问题,我的javascript知识很少,可能太容易了,我做不到。我正在尝试建立一个水平滚动的网站。我已经用按钮完成了转换,但是我想用导航栏中的链接进行转换。当我点击导航链接时,我想去其他部分。我该怎么做?
HTML 代码
<div class="navbar">
<a href="" class="logo">
<img src="" alt="" class="logo-img">
</a>
<nav class="nav-list">
<a href="#home" class="nav-link home-btn">HOME</a>
<a href="#about" class="nav-link about-btn">ABOUT</a>
<a href="#portfolio" class="nav-link port-btn">PORTFOLIO</a>
</nav>
</div>
<button class="page-btn left-btn">
<i class="fa fa-arrow-left" aria-hidden="true"></i>
</button>
<button class="page-btn right-btn">
<i class="fa fa-arrow-right" aria-hidden="true"></i>
</button>
<section class="section-1" id="home">
<div class="section-title">
<h1 class="section-1-hd">
SECTION ONE
</h1>
</div>
</section>
<section class="section-2" id="about">
<div class="section-title">
<h1 class="section-2-hd">
SECTION TWO
</h1>
</div>
</section>
<section class="section-3" id="portfolio">
<div class="section-title">
<h1 class="section-3-hd">
SECTION THREE
</h1>
</div>
</section>
Javascript 代码
var counter1 = 0;
var counter2 = 1;
const sections = document.querySelectorAll('section');
if(counter1 === 3) {
Array.from(sections).forEach(section =>{
section.style.left = "0"
})
counter1=0;
counter2=1;
}
if(counter1 === -1) {
Array.from(sections).forEach(section =>{
if(section.classList[0] === 'section-3') {
return;
}
section.style.left ='-100vw'
})
counter1=2;
counter2=3;
};
window.addEventListener('wheel' , (e) =>{
const deltaY = e.deltaY > 0;
if(deltaY) {
counter1++;
counter2++;
}else {
counter1--;
counter2--;
}
console.log(counter1,counter2);
document.querySelector(`.section-${deltaY ? counter1 : counter2}`).style.left = `${deltaY ? "-100vw" : "0"}`;
});
document.querySelector('.left-btn').addEventListener('click' , () => {
counter1--;
counter2--;
document.querySelector(`.section-${counter2}`).style.left = '0';
});
document.querySelector('.right-btn').addEventListener('click' , () => {
counter1++;
counter2++;
document.querySelector(`.section-${counter1}`).style.left = '-100vw';
});
我可能写了一个非常糟糕的代码,我为此道歉。
【问题讨论】:
标签: javascript html navigation horizontal-scrolling