快速提问。我试图用 jquery 制作一些动画,虽然它可以工作,但这就是我遇到的问题。
首先是代码:
$(document).ready( function(e){
// vars
var question = $('#faqQues');
var answer = $('#faqAns');
var ansCont = $('#faqAnsCont');
question.click(function(){
if (answer.css("display") != "none") {
answer.animate({'height':0}, 500, hmm);
function hmm() {
answer.css("display","none");
}
} else {
answer.css("display","block");
answer.animate({"height":'100'},500);
}
});
});
基本上我想做的就是能够单击某个东西并为其高度设置动画(上下)。 问题出在这个代码块上
else {
answer.css("display","block");
answer.animate({"height":'100'},500);
}
特别是在这一行
{"height":'100'}
我想要发生的是它动画回到 div 默认高度。我不想
添加一个数字(如上面的100)
高度,因为div的内部内容总是会改变,因此是动态高度,但如果我删除高度,它就会中断。我尝试过其他一些事情,包括类似的事情
.animate({"height":'**divNameHere**.height()'},500);
虽然它没有出现错误,但它也不起作用,哈哈。
所以我在这里寻求帮助。我需要对此进行哪些更改,以便它能够动画回到 div 高度,而无需直接输入数字?
任何提示、代码、链接等我都会很高兴
最佳答案
为什么不使用 slideUp()
和 slideDown()
哪些方法完全符合您的要求?
或者更好 slideToggle()
它自动处理两种方式?
$(document).ready(function(e) {
// vars
var question = $('#faqQues');
var answer = $('#faqAns');
var ansCont = $('#faqAnsCont');
question.click(function() {
answer.slideToggle(500);
});
});
演示地址:http://jsfiddle.net/5wBeu/
这就是你所需要的..
关于jquery动画动态高度div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673583/