1

簡単な質問。私は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'}

私がしたいのは、それがdivsのデフォルトの高さにアニメーション化することです。(like the 100 above)divの内部コンテンツは常に変更されるため、動的な高さを追加したくありませんが、高さを削除すると壊れます。私は多分何かのようなものを含む他のいくつかのことを試しました

.animate({"height":'**divNameHere**.height()'},500);

エラーは出ませんが、どちらも動作しません笑。

だからここで私は助けを求めています。数値を直接入力せずに、divの高さをアニメーション化するために、これにどのような変更を加える必要がありますか?

ヒント、コード、リンクなど、喜んで感謝します

4

3 に答える 3

3

自分のやりたいことを正確に実行するslideUp()andメソッドを使用してみませんか?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/でのデモ

必要なのはそれだけです。

于 2012-05-20T13:03:00.520 に答える
0
.animate({"height": $('**divNameHere**').height()},500); 

引用符は省略してください。

于 2012-05-20T13:01:08.940 に答える
0
$(document).ready(function() {

    // vars
    var question = $('#faqQues');
    var answer = $('#faqAns');  
    var ansCont = $('#faqAnsCont');

    question.click(function(){
        if (answer.is(':visible')) {
            answer.animate({height : 'toggle'}, 500, function() {
                answer.hide();
            });
        }else {
            answer.show().animate({height : 'toggle'},500);   
        }
    });
});

あるいは単に :

question.click(function() {
    answer.animate({height : 'toggle'});
});
于 2012-05-20T13:01:34.323 に答える