You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让实现元素切换的JavaScript函数持续循环执行?

实现元素循环切换显示/隐藏

你的MyDraft函数已经能完成单次切换逻辑,要让它循环执行,只需要用setInterval定时调用这个函数即可。以下是具体实现方案:

1. 基础循环实现

直接在页面加载完成后,用setInterval设置定时调用,比如每2秒切换一次:

function MyDraft(){
  var x = document.getElementById("one");
  var y = document.getElementById("two");
  if (y.style.display === "none"){
    x.style.display = "none";
    y.style.display = "block";
  }
  else {
    x.style.display = "block";
    y.style.display = "none";
  }
}

// 页面加载完成后启动循环,每2000毫秒(2秒)切换一次
window.onload = function() {
  setInterval(MyDraft, 2000);
};

2. 修复初始状态判断问题

如果你的元素初始状态是通过外部CSS(而非内联style属性)设置的,y.style.display可能无法正确获取初始值,这时候可以用getComputedStyle来获取实际生效的样式:

function MyDraft(){
  var x = document.getElementById("one");
  var y = document.getElementById("two");
  // 获取元素实际生效的display样式
  var yDisplay = window.getComputedStyle(y).display;
  
  if (yDisplay === "none"){
    x.style.display = "none";
    y.style.display = "block";
  }
  else {
    x.style.display = "block";
    y.style.display = "none";
  }
}

window.onload = function() {
  setInterval(MyDraft, 2000);
};

3. 停止循环的方法

如果需要在某个时机停止切换,可以保存setInterval返回的定时器ID,然后用clearInterval清除:

// 保存定时器ID
var toggleInterval;

window.onload = function() {
  toggleInterval = setInterval(MyDraft, 2000);
};

// 示例:点击按钮停止切换
function stopToggle() {
  clearInterval(toggleInterval);
}

内容的提问来源于stack exchange,提问作者Cheesey_memes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:39:21