当前位置:首页 > JavaScript

js实现slideup

2026-03-14 21:10:46JavaScript

JavaScript 实现 SlideUp 效果

使用纯 JavaScript 实现类似 jQuery 的 slideUp() 效果,可以通过操作元素的 heighttransition 属性来完成。

js实现slideup

基础实现方案

function slideUp(element, duration = 300) {
  element.style.height = element.offsetHeight + 'px';
  element.style.transition = `height ${duration}ms ease`;
  element.offsetHeight; // 触发重绘
  element.style.height = '0';

  setTimeout(() => {
    element.style.display = 'none';
  }, duration);
}

完整实现方案(带回调)

function slideUp(element, duration = 300, callback) {
  element.style.height = element.offsetHeight + 'px';
  element.style.overflow = 'hidden';
  element.style.transition = `height ${duration}ms ease`;

  setTimeout(() => {
    element.style.height = '0';
  }, 10);

  setTimeout(() => {
    element.style.display = 'none';
    if (typeof callback === 'function') {
      callback();
    }
  }, duration + 10);
}

使用示例

const box = document.getElementById('myBox');
slideUp(box, 500, () => {
  console.log('Slide up completed');
});

CSS 准备

确保目标元素初始状态不是 display: none,否则无法获取高度:

js实现slideup

#myBox {
  display: block;
  overflow: hidden;
}

注意事项

  • 使用 offsetHeight 获取元素的完整高度
  • 通过 setTimeout 确保过渡动画能够正常触发
  • 过渡完成后设置 display: none 隐藏元素
  • 添加 overflow: hidden 防止内容在高度变化时溢出

兼容性考虑

如果需要支持旧版浏览器,可以添加厂商前缀:

element.style.transition = `height ${duration}ms ease`;
element.style.webkitTransition = `height ${duration}ms ease`;
element.style.mozTransition = `height ${duration}ms ease`;
element.style.oTransition = `height ${duration}ms ease`;

扩展功能

可以扩展函数以支持更多参数:

function slideUp(element, {
  duration = 300,
  easing = 'ease',
  callback = null
} = {}) {
  // 实现代码
}

标签: jsslideup
分享给朋友:

相关文章

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…