如何为jQuery中.bxspace元素增加高度时应用animate平滑动画?
解决jQuery animate平滑增加高度的问题
嘿,作为jQuery新手遇到这种小坑太正常啦~我来帮你捋清楚问题出在哪,以及怎么搞定平滑动画:
问题根源
你之前写的这段代码有个小错误:
var height = $('.bxspace').height( $('.bxspace').height() + 15 ); $('.bxspace').animate({height: height+'px'});
这里的$('.bxspace').height(...)是直接设置元素高度的方法,它返回的是jQuery对象(不是你要的高度数值),所以后面animate用height+'px'其实是把对象转成字符串,自然不会生效。
两种正确的实现方式
方式1:手动计算高度后动画
先获取当前高度,算出目标高度,再传给animate:
// 假设是绑定在点击事件里 $('你的点击触发元素').click(function() { // 获取当前.bxspace的高度 var currentHeight = $('.bxspace').height(); // 计算要增加后的目标高度 var targetHeight = currentHeight + 15; // 执行平滑动画,第二个参数是动画时长(毫秒),可按需调整 $('.bxspace').animate({ height: targetHeight + 'px' }, 300); });
方式2:用jQuery相对值简化写法
jQuery的animate支持直接使用相对数值,不用手动计算,更简洁:
$('你的点击触发元素').click(function() { // 直接让高度增加15px,自动平滑过渡 $('.bxspace').animate({ height: '+=15px' }, 300); // 300是动画时长,比如改成500就是更慢的动画 });
额外注意点
要确保.bxspace元素是块级元素(比如display: block或inline-block),如果是inline元素,height属性是不生效的,动画自然也不会有效果,可以检查一下你的CSS哦~
内容的提问来源于stack exchange,提问作者Evelyn
相关产品推荐
相关产品推荐

