Skip to content

jQuery 滑动

jQuery 提供了方法来创建平滑的滑动动画,常用于显示或隐藏面板(panel)、菜单或详情部分等内容。

示例场景:一个可点击的标题,可以向上或向下滑动其下方的一个面板。

点击此处切换面板

这是将向上或向下滑动的面板内容。它包含与标题相关的详细信息或选项。

(这是一个概念性示例;实际实现需要 jQuery 和事件处理)

jQuery 提供了三个主要的滑动特效方法:

  • slideDown():向下(垂直方向)滑动一个元素,通过将其高度从 0 动画到其自然高度来显示它。
  • slideUp():向上(垂直方向)滑动一个元素,通过将其高度从当前高度动画到 0 来隐藏它。
  • slideToggle():在 slideDown() 和 slideUp() 之间切换。如果元素是隐藏的,它会向下滑动;如果可见,它会向上滑动。

使用 slideDown() 通过垂直滑动动画显示一个隐藏的元素。

语法:

$(selector).slideDown([duration], [callback]);

  • duration(可选):指定动画速度。可以是字符串(如 'slow'、'fast')或毫秒数(例如 400)。
  • callback(可选):一个动画完成(滑下)后执行的函数。

示例:点击按钮时向下滑动面板。

$(function() {
$("#show-button").on('click', function() {
// 在 400 毫秒内向下滑动 id="panel" 的元素
$("#panel").slideDown(400);
});
});

使用 slideUp() 通过垂直滑动动画隐藏一个可见的元素。

语法:

$(selector).slideUp([duration], [callback]);

(参数 duration 和 callback 的用法与 slideDown() 相同。)

示例:点击按钮时向上滑动面板。

$(function() {
$("#hide-button").on('click', function() {
// 使用 'fast' 速度向上滑动 id="panel" 的元素
$("#panel").slideUp('fast');
});
});

使用 slideToggle() 在向上滑动(隐藏)和向下滑动(显示)元素之间切换。

语法:

$(selector).slideToggle([duration], [callback]);

(参数 duration 和 callback 的用法与之前相同。)

示例:点击标题时切换面板的可见性。

$(function() {
$("#toggle-header").on('click', function() {
// 选择下一个元素(假设它是面板)并切换其滑动状态
$(this).next("#panel").slideToggle(500, function() {
// 可选的回调函数:滑动完成后运行
console.log('滑动切换完成。面板可见:', $(this).is(':visible'));
});
});
});

注意:使用 $(this).next("#panel") 假定该面板在 HTML 中紧跟在标题后面。请根据你的具体结构调整选择器(selector)。

虽然 jQuery 的滑动特效很方便,但要注意性能,尤其是在复杂的页面或移动设备上。对于简单的类似滑动的过渡效果,使用 CSS 的 max-height 属性进行过渡(transition)有时能提供更流畅的性能,因为它们可以由浏览器进行硬件加速。然而,对于动态高度的内容,jQuery 的方法通常更容易处理,并且提供了内置的回调函数(callback)功能。

有关所有 jQuery 特效(effect)的完整概述,包括详细选项和示例,请查阅官方 jQuery Effects 文档。