<div class="projects">
<h3>MY PROJECTS</h3>
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" id="arrowLeft" class="bi bi-arrow-left-short" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M12 8a.5.5 0 0 1-.5.5H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5a.5.5 0 0 1 .5.5z" />
</svg>
<div class="card" id="card1">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/nature/182.webp" class="card-img-top" alt="Project 1" />
<div class="card-body">
<p class="card-text">kart1</p>
</div>
</div>
<div class="card" id="card2">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/nature/182.webp" class="card-img-top" alt="Project 2" />
<div class="card-body">
<p class="card-text">kart2</p>
</div>
</div>
<div class="card" id="card3">
<img src="https://mdbcdn.b-cdn.net/img/new/standard/nature/182.webp" class="card-img-top" alt="Project 3" />
<div class="card-body">
<p class="card-text">kart3</p>
</div>
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="25" height="25" fill="currentColor" id="arrowRight" class="bi bi-arrow-right-short" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M4 8a.5.5 0 0 1 .5-.5h5.793L8.146 5.354a.5.5 0 1 1 .708-.708l3 3a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708-.708L10.293 8.5H4.5A.5.5 0 0 1 4 8z" />
</svg>
</div>
var index = 0;
var slideCount = models.length;
showSlide(index);
document.querySelector("#arrowLeft").addEventListener("click", function () {
index--;
slideCount[index - 1].setAttribute("style", "display:none");
showSlide(index);
console.log(index);
});
document.querySelector("#arrowRight").addEventListener("click", function () {
index++;
showSlide(index);
console.log(index);
});
function showSlide(i) {
index = i;
if (i < 0) {
index = slideCount - 1;
}
if (i >= slideCount) {
index = 0;
}
}
你认为这种方法有意义吗?我不知道怎么做。如果你知道更好的方法,你能教我吗?因为我是一个初学者。我看了一些幻灯片制作的方法,但它很难。
2条答案
按热度按时间z0qdvdin1#
既然你想有一个幻灯片效果(我预计你想自己做,而不想使用库),你需要做一些css技巧。我最近在React中实现了类似的东西,所以也许这会给予你一个完整的例子,我将在下面提到Github ReactSlider.tsx
不过,我对这个函数的解释如下:
100vw
(100%的视口宽度)向左或向右,取决于你的方向(csstransform
选项与translate3d(x, 0 [y], 0 [z])
)overflow: hidden
css选项。如果要从DOM中完全删除另一张幻灯片,可以按如下方式执行:
下面是一个例子:
atmip9wb2#
若要使用您提供的代码切换幻灯片,您需要更新
showSlide
函数以实际显示您要显示的幻灯片。当前,该函数仅更新index
变量,但实际上不会更改页面上任何元素的显示。实现这一点的一种方法是使用
index
变量从models
数组中访问正确的幻灯片,然后更新页面上元素的显示以显示该幻灯片。下面是一个示例,说明如何执行此操作:此代码假定页面上有ID为
#slideTitle
、#arrowLeft
和#arrowRight
的元素,这些元素用于显示当前幻灯片的标题并允许用户在幻灯片之间导航。您需要调整代码以匹配HTML的结构和要更新的元素。