当前位置:首页 > 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

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

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

js原生实现 toggle

标签: jstoggle
分享给朋友:

相关文章

js实现动画

js实现动画

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

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounc…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #34…