当前位置:首页 > 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 动态切换:

js 实现收缩

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

使用动画实现平滑收缩

结合 requestAnimationFrame 实现逐帧动画:

js 实现收缩

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';
});

注意事项

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

标签: js
分享给朋友:

相关文章

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…

js实现的游戏

js实现的游戏

JavaScript 游戏开发基础 JavaScript 是开发网页游戏的流行选择,因其无需插件即可在浏览器中运行。以下是一些关键技术和资源: HTML5 Canvas Canvas 提供了绘制图形…

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js 实现进度条

js 实现进度条

使用 HTML 和 CSS 创建基础结构 进度条需要一个容器和一个填充元素。HTML 结构可以简单如下: <div class="progress-container"> <d…