jquery动画动态高度div

标签 jquery animation

快速提问。我试图用 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/

相关文章:

javascript - 用于检测视频点击的跨浏览器解决方案?

jQuery html 过渡

javascript - 在 Javascript 中使用类名的动画

javascript - 使用 JQuery 以不同的方式设置每个 <li> 的样式

jquery - 如何在 MVC View 之间显示 'loading'

jquery - 在 jQuery 1.9 删除 .toggle(function,function) 之后可以使用什么替代方法?

ios - 用 20 像素向左和向右动画按钮

javascript - 使用JavaScript复制CSS或SMIL动画

java - 实现 AnimationListener 抽象方法

css - 背景位置不适用于 CSS 动画和线性渐变