当前位置:首页 > JavaScript

js实现点击显示隐藏

2026-01-30 15:20:53JavaScript

使用classList切换显示隐藏

通过JavaScript的classList属性添加或移除CSS类来控制元素的显示与隐藏。定义一个CSS类如.hidden { display: none; },通过以下代码切换:

const element = document.getElementById('targetElement');
element.classList.toggle('hidden');

直接修改style属性

动态修改元素的style.display属性实现即时显示或隐藏。适用于无需预定义CSS类的情况:

js实现点击显示隐藏

const button = document.getElementById('toggleButton');
const content = document.getElementById('content');

button.addEventListener('click', () => {
  if (content.style.display === 'none') {
    content.style.display = 'block';
  } else {
    content.style.display = 'none';
  }
});

使用data-*属性存储状态

结合HTML5的data-*属性记录当前状态,增强代码可读性:

js实现点击显示隐藏

document.querySelector('[data-toggle]').addEventListener('click', (e) => {
  const targetId = e.target.getAttribute('data-target');
  const target = document.getElementById(targetId);
  const isHidden = target.getAttribute('data-hidden') === 'true';

  target.style.display = isHidden ? 'block' : 'none';
  target.setAttribute('data-hidden', String(!isHidden));
});

淡入淡出动画效果

通过CSS过渡和透明度变化实现平滑的显示隐藏效果:

function fadeToggle(element) {
  element.style.transition = 'opacity 0.3s';
  const isVisible = window.getComputedStyle(element).opacity === '1';
  element.style.opacity = isVisible ? '0' : '1';
  element.style.pointerEvents = isVisible ? 'none' : 'auto';
}

多元素联动控制

批量控制多个元素的显示状态,常用于菜单或标签页切换:

document.querySelectorAll('.toggle-group').forEach(trigger => {
  trigger.addEventListener('click', () => {
    const targetClass = trigger.dataset.toggleClass;
    document.querySelectorAll(`.${targetClass}`).forEach(item => {
      item.classList.toggle('active');
    });
  });
});

注意事项

  • 确保DOM加载完成后再绑定事件,可将代码放在DOMContentLoaded事件中或置于<body>末尾
  • 移动端考虑添加touchstart事件兼容触摸操作
  • 隐藏元素时注意保留布局空间,visibility: hidden可避免页面跳动
  • 对于频繁切换的元素,建议使用requestAnimationFrame优化性能

标签: js
分享给朋友:

相关文章

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现换肤

js实现换肤

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

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…