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

多Div区块随Checkbox勾选淡出效果的简化实现需求

简化食谱步骤完成勾选淡出功能的实现方案

实现思路

不用为每个步骤编写单独的JS函数,通过事件委托统一处理所有复选框的状态变化,用data-*属性关联复选框和对应的步骤div。非技术用户新增步骤时,只需要复制现有结构、修改ID即可,完全不用碰JS代码。

完整代码实现

HTML结构

<!-- 步骤1 -->
<div class="recipe-step">
  <input type="checkbox" data-target="step-one" id="check-step-one">
  <label for="check-step-one">Mark as Complete</label>
  <div id="step-one" class="step-content">
    <h3>Step One</h3>
    <p>将面粉、鸡蛋、牛奶混合成糊状,静置10分钟。</p>
  </div>
</div>

<!-- 步骤2 -->
<div class="recipe-step">
  <input type="checkbox" data-target="step-two" id="check-step-two">
  <label for="check-step-two">Mark as Complete</label>
  <div id="step-two" class="step-content">
    <h3>Step Two</h3>
    <p>平底锅预热,刷一层薄油,倒入一勺面糊摊成圆形。</p>
  </div>
</div>

<!-- 新增步骤只需复制以上结构,修改3处:
1. 复选框的id(比如check-step-three)
2. label的for属性对应新复选框id
3. 步骤div的id(比如step-three),同时把复选框的data-target改成这个新id
-->

CSS样式

.step-content {
  margin: 10px 0;
  padding: 15px;
  border: 1px solid #eee;
  border-radius: 4px;
  /* 添加平滑过渡动画 */
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.fade-out {
  opacity: 0.3;
  /* 如果需要完全隐藏,可添加以下代码:
  visibility: hidden;
  height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  */
}

JavaScript代码

// 事件委托:监听页面上所有复选框的状态变化
document.addEventListener('change', function(e) {
  // 只处理带data-target属性的复选框
  if (e.target.type === 'checkbox' && e.target.dataset.target) {
    const targetDivId = e.target.dataset.target;
    const stepDiv = document.getElementById(targetDivId);
    if (stepDiv) {
      // 根据勾选状态切换淡出类
      stepDiv.classList.toggle('fade-out', e.target.checked);
    }
  }
});

新增步骤的操作流程

  1. 复制现有的.recipe-step容器代码
  2. 修改三个字段:
    • 复选框的id(比如从check-step-two改成check-step-three)
    • label的for属性值和新复选框id保持一致
    • 步骤内容div的id(比如step-three),同时把复选框的data-target值改成这个新id
  3. 把修改后的代码粘贴到页面中,无需改动JS或CSS,直接生效

方案优势

  • 彻底抛弃了每个步骤写单独函数的冗余模式,代码量大幅减少
  • 事件委托自动监听所有新增的复选框,无需手动绑定事件
  • 非技术用户只需简单复制修改ID,就能无限扩展步骤数量

内容的提问来源于stack exchange,提问作者Inventive Web Design

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:25:18