jQuery 效果方法

jQuery 用一组封装好的效果方法实现显示、隐藏、淡入淡出、滑动与自定义动画,几行代码就能让页面"动起来"。多数效果方法都支持速度参数和完成后的回调函数。

显示与隐藏

hide() / show() 直接显隐,toggle() 在两者间切换;传入速度后宽、高、透明度会一起渐变:

$("#box").hide();                 // 立即隐藏
$("#box").show(800);              // 0.8 秒内逐渐显示
$("#box").toggle("slow");         // 慢速切换隐藏/显示
$("#box").toggle(1000, function () {
  console.log("切换完成");          // 输出:切换完成
});

淡入淡出

fade 系列只改变透明度,常用于提示条、弹层:

$("#box").fadeIn(1000);        // 1 秒内淡入
$("#box").fadeOut(500);        // 半秒淡出
$("#box").fadeToggle();        // 淡入淡出切换
$("#box").fadeTo(600, 0.3);    // 0.6 秒内把透明度调到 30%
// 效果:元素逐渐显现或隐去,不改变宽高

滑动

slide 系列通过改变高度形成"拉窗帘"效果,适合折叠菜单、下拉面板:

$("#panel").slideDown(500);    // 向下展开
$("#panel").slideUp(500);      // 向上收起
$("#panel").slideToggle();     // 展开/收起切换
// 效果:面板高度从 0 平滑变化到内容高度

自定义动画 animate()

animate() 可以动画任意数值型 CSS 属性,语法: animate({ 属性: 目标值 }, speed, easing, callback)

$("#box").animate(
  { left: "200px", opacity: 0.5 }, // 移动并变半透明
  1000,
  function () { console.log("动画完成"); } // 输出:动画完成
);
// 效果:元素 1 秒内向右移动 200px 并逐渐变淡

注意:颜色、transform 等非数值属性无法直接用 animate() 动画,需要插件或 CSS3 过渡配合。

停止动画与队列

多个动画会按顺序排队执行,可用 stop() 与 delay() 控制:

$("#box").stop();             // 停止当前正在执行的动画
$("#box").stop(true, true);   // 参数1 清空队列;参数2 直接跳到终点
$("#box").delay(500).fadeIn(); // 先等 0.5 秒再开始淡入
// 效果:停止后元素停在半路,或立即完成,或延迟后继续

小结:显隐、淡入淡出、滑动与 animate() 组成了 jQuery 动画体系,速度与回调参数让动画可控可感知。想精细管理动画排队,就配合 stop()、delay() 使用。

笔记加载中…