29

私のjQueryslideToggle()実験

私が箱を開けたときになぜ私の箱が「ジャンプ」するのか誰かに教えてもらえますか?前半はスライドし、残りは「ジャンプ」しますか?

ありがとう、 ヨハネス

4

13 に答える 13

24

簡単な修正です。この CSS ルールをスタイルシートに追加します ( Firebug で動作するようにテスト済みで、この問題に関する過去の経験から、これが修正です):

ol.message_list { position: relative }

これは CSS のバグであり、jQuery のバグ自体ではありません。

于 2010-02-24T17:33:03.270 に答える
11

あなたの場合の最も速い修正:

.message_container { width: 361px; }

<p>正確な理由はわかりませんが、原因の問題を含むときにコンテナーに固定幅を与えないでください。それを与えると、ジャンプがなくなります。

于 2010-02-24T17:21:59.480 に答える
6

css パディングと jquery の slideToggle はうまく連携しません。パディングをボックスアウトしてみてください。

于 2013-03-27T12:24:59.147 に答える
5

slideToggleこの問題は、マージン/パディングではなく高さだけをアニメーション化する多くの場合に見つかりました。

したがって、次のようなものが解決する可能性があります。

$("#thediv").slideToggle().animate({"margin-bottom": "toggle"});
于 2010-02-24T17:20:19.713 に答える
2

偶然にも、最も簡単に使用できるソリューションは、アニメーションのパディング/マージントップ/ボトムを使用してjQueryにカスタム関数を追加することだと思います。

//this function is to avoid slideToggle jQuery jump bug.
$.fn.slideShow = function(time,easing) { return $(this).animate({height:'show','margin-top':'show','margin-bottom':'show','padding-top':'show','padding-bottom':'show',opacity:1},time,easing); }
$.fn.slideHide = function(time,easing) {return $(this).animate({height:'hide','margin-top':'hide','margin-bottom':'hide','padding-top':'hide','padding-bottom':'hide',opacity:0},time,easing);  }

そして使用例:

$(this).slideShow(320,'easeOutQuart');
$(this).slideHide(320,'easeOutQuart');

私のアニメーション化された不透明度のトグル tu の例は、必要に応じて変更できます。

于 2012-10-25T14:15:02.583 に答える