2

JavaScript で Windows 8 アプリを作成しています。私がやろうとしているのは、html要素を画面からスライドさせてから、その「表示」プロパティを「なし」に変更することです:

var panelContainer = $('#panelContainer');
panelContainer.animate({ right: '-400px' }, 200, function () {
    panelContainer.hide();
});

しかし、このコードは正しく機能しません。アニメーションなしで要素をすぐに非表示にするだけです。私も試しました:

var panelContainer = $('#panelContainer');
panelContainer.animate({ right: '-400px' }, 200, function () {
    panelContainer.hide(200);
});

それは機能しますが、ハックです。アニメーション化するときに不透明度を変更したくないので、非表示にするために追加のタイムアウトを設定する必要はありません。jQuery UI ライブラリには、それを行う show および hide メソッドが拡張されていることがわかりましたが、このライブラリを 1 回の呼び出しだけで参照したくありません。同様の操作を行う WinJS.UI.Flyout があることは承知していますが、私の場合は当てはまりません。これを行う方法はありますか?

4

1 に答える 1

0

hide問題は、jQuery がデフォルトでアニメーションをアニメーション キューに入れないことでした。そのため、私の最初のコードでは最初に html 要素を非表示にしてからアニメーション化していました。hideそのための解決策は、呼び出しをキューに入れる必要があることを明示的に指定するパラメーターを使用して hide を呼び出すことです。

panelContainer.hide({queue: true});

于 2013-05-24T03:38:56.727 に答える