0

divのcssを設定しました

height:130px;
overflow:hidden;

このように現在の高さから原点の高さまでのアニメーションが欲しいのですが、原点の高さを取得できません。1つの可能な方法は、domをロードした後、このようにjsに高さを保存することです。

$(function(){
    $('.detail').data('originHeight',$('.detail').height());
    $('.detail').css({height:'130px',overflow:'hidden'})
})

ただし、これを行うと、divは最初にすべてを表示し、次に高さを130pxに設定します。

助言がありますか?

4

4 に答える 4

3

あなたが持っている方法は正しい方法ですが、これがあなたに与える視覚的なちらつきを避けるためにあなたはいくつかのハックを必要とするかもしれません。

divを画面外に移動し、高さを確認してから元に戻してみてください。また、ここにいる間は、可能であれば複数のjQueryルックアップを使用しないでください$('.detail')。これは非常にコストのかかる操作になる可能性があります。

var $detail = $('.detail');
$detail
    .css({position : 'absolute', left: '-10000px'})
    .data('origHeight', $detail.height())
    .css({position : '', left : '', height : '130px', overflow : 'hidden'})
;

または、これがうまくいかない場合は、それに反対するのではなく、一緒に作業してください。たとえば、フルサイズから始めて、130ピクセルにアニメーション化することで、デザインに適合させる方法を検討することは有益かもしれません。これにより、通常のサイズを適切に確認できるだけでなく、そこに表示される情報がさらにあることをユーザーに知らせることができます。

于 2009-05-06T05:32:48.320 に答える
1

代わりにcss属性を削除してdivを展開することはできませんか?

$('.detail').css({height:'', overflow:''})
于 2009-05-06T04:28:35.290 に答える
1

これは、要素のscrollHeightプロパティを使用して以前に行ったことがあります。

document.getElementById('element').scrollHeight;

autoこれは、高さが設定されて有効にされた場合の要素の高さを示しますoverflow

于 2009-05-06T15:16:26.123 に答える
0

それが唯一の方法だと思います。jQueryでCSSを使用して高さを変更した場合、高さが変更された高さになります。そして、変更された高さはあなたがアクセスするものです。

私が考えることができる唯一のシナリオは、jqueryを使用して元の高さを保存するか、固定の高さを指定してjQueryに拡張する時間を指示することです。

于 2009-05-06T05:23:42.570 に答える