当前位置:首页 > JavaScript

js原生实现 toggle

2026-02-02 22:16:05JavaScript

原生JavaScript实现Toggle功能

使用原生JavaScript实现toggle效果可以通过多种方式完成,以下是几种常见方法:

切换类名实现显示/隐藏

const element = document.getElementById('targetElement');
element.addEventListener('click', function() {
  this.classList.toggle('active');
});

CSS需配合定义.active样式,例如:

.active {
  display: none;
}

直接修改style属性

const btn = document.querySelector('.toggle-btn');
const box = document.querySelector('.box');

btn.addEventListener('click', function() {
  if (box.style.display === 'none') {
    box.style.display = 'block';
  } else {
    box.style.display = 'none';
  }
});

切换布尔值状态

let isVisible = true;
const toggleBtn = document.getElementById('toggleBtn');
const content = document.getElementById('content');

toggleBtn.addEventListener('click', () => {
  isVisible = !isVisible;
  content.style.visibility = isVisible ? 'visible' : 'hidden';
});

自定义数据属性实现

document.querySelector('[data-toggle]').addEventListener('click', (e) => {
  const target = document.querySelector(e.target.dataset.toggle);
  target.hidden = !target.hidden;
});

HTML结构示例:

<button data-toggle="#panel">切换</button>
<div id="panel">可切换内容</div>

实现开关式toggle

js原生实现 toggle

const toggleSwitch = document.createElement('input');
toggleSwitch.type = 'checkbox';
toggleSwitch.addEventListener('change', function() {
  console.log(this.checked ? '开启' : '关闭');
});
document.body.appendChild(toggleSwitch);

以上方法可根据具体需求选择使用,类名切换的方式更符合现代前端开发实践,便于维护和扩展样式。直接操作style属性适合简单快速的实现,而数据属性方式则更具语义化。

标签: jstoggle
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let currentY…

js实现筛选

js实现筛选

JavaScript 实现数据筛选的方法 使用 Array.filter() 方法 Array.filter() 是 JavaScript 中最常用的筛选方法,它会创建一个新数组,包含通过回调函数测试…