当前位置:首页 > JavaScript

js 实现收缩

2026-04-06 12:56:54JavaScript

实现元素收缩的 JavaScript 方法

通过修改 CSS 属性实现收缩

使用 style 属性直接控制元素的 heightwidth,适用于快速切换固定尺寸:

const element = document.getElementById('target');
element.style.height = '0px'; // 收缩高度
element.style.width = '50%'; // 收缩宽度至原50%

通过 classList 切换预设样式

定义收缩状态的 CSS 类,通过 JavaScript 动态切换:

.collapsed {
  height: 0;
  overflow: hidden;
  transition: height 0.3s ease;
}
document.querySelector('.toggle-button').addEventListener('click', () => {
  document.getElementById('content').classList.toggle('collapsed');
});

使用动画实现平滑收缩

结合 requestAnimationFrame 实现逐帧动画:

function collapse(element, duration = 300) {
  const startHeight = element.offsetHeight;
  const startTime = performance.now();

  function animate(currentTime) {
    const elapsed = currentTime - startTime;
    const progress = Math.min(elapsed / duration, 1);
    element.style.height = `${startHeight * (1 - progress)}px`;

    if (progress < 1) {
      requestAnimationFrame(animate);
    } else {
      element.style.display = 'none';
    }
  }
  requestAnimationFrame(animate);
}

响应式收缩布局

根据窗口大小动态调整收缩状态:

window.addEventListener('resize', () => {
  const panel = document.getElementById('responsive-panel');
  panel.style.width = window.innerWidth < 768 ? '0' : '250px';
});

注意事项

js 实现收缩

  • 收缩元素时应考虑 overflow: hidden 避免内容溢出
  • 带有过渡效果时需监听 transitionend 事件
  • 动态内容需要先获取实际尺寸再执行收缩
  • 屏幕阅读器需配合 aria-expanded 属性保持可访问性

标签: js
分享给朋友:

相关文章

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…