0

私はこれを行う方法を理解するのに苦労しています。いくつかの jQuery UI タブ内にいくつかの jqGrid 要素があります。グリッドが幅 100% を占めるようにするために、簡単なwindow.resizeイベントを作成しました。

ユーザーがボタンをクリックすると、タブがフェードアウトし、 jqGridsをクリアしてリロードし、タブをフェードインします。リロード」ボタンを押して動作を確認してください)。

ただし、グリッドが表示され始めたらすぐにタブを埋めるようにグリッドのサイズを変更したいと思います。タブを呼び出した$(window).resize()直後に呼び出す$(..).fadeIn()と、機能しません。アニメーションがまだ開始されておらず、グリッドが表示されていないためだと思います。

window.resizeフェード効果が始まった直後にトリガーする方法はありますか?

(できれば最後まで待たなくていいです。)

4

4 に答える 4

2

サイズ変更関数を直接呼び出してタイムアウトを設定するだけです。

$('#container').fadeIn(2000);
setTimeout(custJqGResize,10);
于 2012-11-14T12:45:42.453 に答える
1

これはうまく機能します。次の行を loadGrids() 関数の先頭に追加します。

$('#container').show().css('visible', false);

アイデアはコンテナを非表示にすることですが、フェードインする前に通常のレイアウトスペースを使い果たします

このためのjsFiddle:http://jsfiddle.net/qvY9s/9/

于 2012-11-14T12:46:38.637 に答える
1

それを行う前に、任意の時間を遅らせることができます:

setTimeout(function(){$(window).resize()},100);

更新されたフィドル: http://jsfiddle.net/qvY9s/8/

于 2012-11-14T12:42:27.110 に答える
0

onmousedown および onmouseup イベントを試しましたか? onmousedown -> リサイズ onmouseup -> フェードイン

于 2012-11-14T12:41:33.603 に答える