javascript - 无法在 javascript 中向我的元素添加活动状态
问题描述
所以我尝试制作一个类似于 w3schools 的功能。该功能需要管理两件事。1. 调用当前页面时,将“.active”类添加到一个点上。2.当用户点击点进入该页面时。
在我的代码中,如果我在通过函数 Example(dots[sliderIndex].classList.add("active");) 添加类时留出一些空间,现在它可以单击并转到该页面,但如果我削减空间(点[sliderIndex].classList.add("active");) 现在显示活动状态,但单击点不起作用。这让我很困惑......请各位,如果你能向我解释背后的逻辑以及如何使这项工作发挥作用。
var sliderIndex = 0;
let next2 = document.querySelector(".next2");
let prev2 = document.querySelector(".prev2");
function showNews(n) {
const slider = document.getElementsByClassName("news");
const dots = document.getElementsByClassName("dot");
for (i = 0; i < slider.length; i++) {
slider[i].style.display = "none";
}
if (n < 0) {
sliderIndex = slider.length - 1;
}
if (n > slider.length - 1) {
sliderIndex = 0;
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", " ");
}
slider[sliderIndex].style.display = "block";
dots[sliderIndex].classList.add(" active");
}
function currentSlide(n) {
showNews((sliderIndex = n));
}
function incrementSlides2(n) {
showNews((sliderIndex += n));
}
next2.addEventListener("click", function() {
incrementSlides2(1);
});
prev2.addEventListener("click", function() {
incrementSlides2(-1);
});
showNews(sliderIndex);
#section-three .slideshow-container2 #dots {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
justify-content: center;
}
#section-three .slideshow-container2 .dot {
cursor: pointer;
height: 15px;
width: 15px;
margin: 0 2px;
background-color: #bbb;
border-radius: 50%;
display: inline-block;
-webkit-transition: background-color 0.6s ease;
transition: background-color 0.6s ease;
}
#section-three .slideshow-container2 .dot:hover,
#section-three .slideshow-container2 .dot.active {
background: black;
}
.active{background:red}
<section id="section-three">
<div class="container slideshow-container2">
<div class="news">
<div class="news-content">
<div class="buttons">
<a class="btn company-btn" href="#">COMPANY NEWS</a>
<a class="btn industry-btn" href="#">INDUSTRY NEWS</a>
</div>
<h1>OUR PEOPLE ARE OUT STONGEST ASSET </h1>
</div>
</div>
<div class="news news2">
<div class="news2-content">
<div class="buttons">
<a class="btn company-btn" href="#">COMPANY NEWS</a>
<a class="btn industry-btn" href="#">INDUSTRY NEWS</a>
</div>
<h1 class="media-room">MEDIA ROOM </h1>
<div class="img">
<img src="/Core/img/media.jpg" style="width:500px" alt="">
</div>
</div>
</div>
<div id="dots">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
</div>
<a href="javascript:void(0);" class="prev2"></a>
<a href="javascript:void(0);" class="next2"></a>
</div>
</section>
解决方案
推荐阅读
- javascript - Android中这个键的名称是什么?
- td-engine - 更改副本需要几分钟才能反映在 TDengine 集群中
- python - 对大数据进行预测的最有效方法?
- ajax - 在 Ajax Laravel 中评论
- vb.net - VB.NET:添加\删除 datagridview 复选框行的行索引
- wordpress - 使用插件上传页眉和页脚后,我的鼠标没有出现在我的 wordpress 网站中的原因是什么?
- reactjs - React JS 和 framer-motion 中的无限动画列表问题
- sql-server - 添加凭据参数后无法在 SSMS 中运行 SQL Server 存储过程查询
- gitkraken - 如何在 Gitkraken 中像 git GUI 一样显示提交的所有文件数据
- powershell - 如何在powershell中拆分字符串变量并重命名文件夹