Javascript 切换按钮激活导致功能触发
我试图创建一个切换按钮,当激活时会触发一个函数 此函数附加了一个超时,并将在给定时间后重新触发 这应该只在按钮处于活动状态时发生,因此如果用户再次单击所述按钮,自动化应该停止。换言之,如果用户使切换按钮处于“非活动”状态,则函数应返回 代码如下:Javascript 切换按钮激活导致功能触发,javascript,html,css,Javascript,Html,Css,我试图创建一个切换按钮,当激活时会触发一个函数 此函数附加了一个超时,并将在给定时间后重新触发 这应该只在按钮处于活动状态时发生,因此如果用户再次单击所述按钮,自动化应该停止。换言之,如果用户使切换按钮处于“非活动”状态,则函数应返回 代码如下: 函数自动滑动(){ slideIndex++; 放映幻灯片(幻灯片索引); 设置超时(自动滑动,10000); } 函数加滑块(n){ 放映幻灯片(幻灯片索引+=n); } 功能当前幻灯片(n){ n--; 放映幻灯片(幻灯片索引=n); } 功能演
函数自动滑动(){
slideIndex++;
放映幻灯片(幻灯片索引);
设置超时(自动滑动,10000);
}
函数加滑块(n){
放映幻灯片(幻灯片索引+=n);
}
功能当前幻灯片(n){
n--;
放映幻灯片(幻灯片索引=n);
}
功能演示幻灯片(n){
var i;
对于(i=0;i=slides.length){
slideIndex=0;
}否则如果(滑动索引<0){
slideIndex=slides.length;
}
幻灯片[slidePrev].style.transform=“translateX(100%)”;
幻灯片[slideIndex].style.transform=“translateX(0)”;
slidePrev=slideIndex;
}
.Slides{
位置:绝对位置;
转化:translateX(-100%);
转变:转变2s;
显示:内联块;
宽度:100%;
身高:100%;
保证金:0;
}
.幻灯片和图像{
宽度:100%;
身高:100%;
对象匹配:覆盖;
}
#asktoggle底座{
高度:自动;
宽度:100%;
位置:绝对位置;
底部:0;
左:0;
右:0;
保证金:0自动;
文本对齐:居中;
}
#询问{
字体大小:0.5em;
光标:指针;
颜色:白色;
背景色:rgba(226208,0,0.6);
边界半径:3px;
填充:10px;
显示:内联块;
过渡:背景色0.5s线性;
}
.主动,
#asktoggle:悬停{
背景色:rgb(226208,0);
}
切换幻灯片放映
Storevar sto=setTimeout()编码>到一个变量,然后清除超时(sto)代码>
这里有一个例子;
var sto=0;
var isEnabled=true;
函数自动滑动()
{
控制台日志(“调用”);
}
函数toggleMethod()
{
如果(已启用)
{
sto=设置超时(自动滑动,1000);
console.log(“已启用”);
}否则{
清除超时(sto);
控制台日志(“禁用”);
}
isEnabled=!isEnabled;
}
ToggleMe
我想这就是你要找的。我们正在根据“活动”类将函数设置为运行或不运行
信息:代码段在这里不起作用,因为您没有提供完整的代码
函数自动滑动(){
var slidesTimeout=setTimeout(函数(){
自动滑动();
}, 10000);
if(document.getElementById(“asktoggle”).classList.contains('active')){
slideIndex++;
放映幻灯片(幻灯片索引);
滑出;
}否则{
clearTimeout(slidesTimeout);
}
}
函数加滑块(n){
放映幻灯片(幻灯片索引+=n);
}
功能当前幻灯片(n){
n--;
放映幻灯片(幻灯片索引=n);
}
功能演示幻灯片(n){
var i;
对于(i=0;i=slides.length){
slideIndex=0;
}否则如果(滑动索引<0){
slideIndex=slides.length;
}
幻灯片[slidePrev].style.transform=“translateX(100%)”;
幻灯片[slideIndex].style.transform=“translateX(0)”;
slidePrev=slideIndex;
}
document.getElementById(“asktoggle”).addEventListener(“单击”,toggleActive);
函数toggleActive(){
document.getElementById(“asktoggle”).classList.toggle(“活动”);
自动滑动();
}
.Slides{
位置:绝对位置;
转化:translateX(-100%);
转变:转变2s;
显示:内联块;
宽度:100%;
身高:100%;
保证金:0;
}
.幻灯片和图像{
宽度:100%;
身高:100%;
对象匹配:覆盖;
}
#asktoggle底座{
高度:自动;
宽度:100%;
位置:绝对位置;
底部:0;
左:0;
右:0;
保证金:0自动;
文本对齐:居中;
}
#询问{
字体大小:0.5em;
光标:指针;
颜色:白色;
背景色:rgba(226208,0,0.6);
边界半径:3px;
填充:10px;
显示:内联块;
过渡:背景色0.5s线性;
}
.主动,
#asktoggle:悬停{
背景色:rgb(226208,0);
}
切换幻灯片放映
你有没有研究过clearTimeout()
?@Manav这是个好主意,但我应该如何实现它?你能详细介绍一下我应该如何实现它吗?如果
按钮处于活动状态
stoelse{clearTimout(sto);}
,是否为。我要做一个单独的函数来进行检查吗?请详述你的答案。@James9oo0差不多,是的。我已经更新了我的帖子,为您演示了这方面的通用实现(因为您还没有提供所有代码)。