javascript - 使用自动滑动创建图像滑块
问题描述
我正在尝试使用自动滑动创建图像滑块,但卡在自动滑动
这是我的 javasciprt 代码,我的下一个和上一个按钮工作正常,但难以实现自动化
var myslider=document.querySelector(".image-silder")
var myimages=document.querySelectorAll(".image-silder img")
var prevbtn=document.getElementById("prev-btn")
var nextbtn=document.getElementById("next-btn")
var optionbtn=document.querySelectorAll(".option")
console.log(optionbtn)
var counter=1
var size=myimages[counter].clientWidth
myslider.style.transform='translateX('+(-size*counter)+'px)'
nextbtn.addEventListener("click",function(){
if(counter>=myimages.length-1)return;
myslider.style.transition="transform 0.4s ease-in-out"
counter++
myslider.style.transform='translateX('+(-size*counter)+'px)'
})
prevbtn.addEventListener("click",function(){
if(counter<=0)return;
myslider.style.transition="transform 0.4s ease-in-out"
counter--
myslider.style.transform='translateX('+(-size*counter)+'px)'
})
myslider.addEventListener("transitionend",function(){
myslider.style.transition="none"
if(myimages[counter].id==="lastclone")
{
counter=myimages.length-2
myslider.style.transform='translateX('+(-size*counter)+'px)'
}
})
myslider.addEventListener("transitionend",function(){
myslider.style.transition="none"
if(myimages[counter].id==="firstclone")
{
counter=1
myslider.style.transform='translateX('+(-size*counter)+'px)'
}
})
optionbtn.forEach((a)=>a.addEventListener("click" ,function(){
let i=this.getAttribute("option-index")
counter=i
myslider.style.transition="none"
myslider.style.transform='translateX('+(-size*counter)+'px)'
console.log(counter)
}))
解决方案
您可以首先创建一个函数进入下一张幻灯片支持 DRY 的原理,然后在setTimeout
函数中使用它并设置要显示下一张幻灯片的间隔。假设你有一个名为 nextSlide 的函数,然后你可以做这样的事情......
setTimeout(nextSlide,1000);
推荐阅读
- typescript - 在未安装 @progress/kendo-ui 的情况下以正确方式导入 @types/kendo-ui
- indexing - 可以将 HASH 键更新为预先存在的 Dynamodb 全局二级索引的另一个属性吗?
- c++ - 如何将固定长度的 char* 转换为数字或将非空终止的 char* 转换为数字?
- python - 更新函数中的返回值
- javascript - 创建日历事件时返回奇怪的错误消息
- c# - Reading CSV with optional column using CsvHelper
- java - How to execute several sql-statements in one session with mybatis-string
- python - 对 MongodDB 中文档的几乎所有字段应用操作?
- excel - 对象失效的方法范围
- kubernetes - 将完整的应用程序放在一个 Kubernetes pod 中是否很好?