初期コード セットautoOpen: false
. これにより、初期化時にダイアログが開かなくなります。$("#dialog").dialog("open")
次に、2 番目のコードと同様のスクロール イベントを使用して具体的に呼び出すことができます。
アクションを遅くしたい場合show
は、アニメーションのオプションを追加できます。例は次のとおりです。
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
width: 200,
height: 200,
show: {
effect: 'slide',
duration: 2000 // 2 second duration
},
hide: 'puff'
});
});
使用可能なすべてのオプションについては、ダイアログ APIを確認してください。
一度表示させるには、次の 2 つの方法があります。
ダイアログを破棄するか、イベント ハンドラを削除してください。
どちらの場合も、次のようにダイアログを閉じるときに実行する関数を指定できます。
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
width: 200,
height: 200,
show: {
effect: 'slide',
duration: 2000 // 2 second duration
},
hide: 'puff',
close: function () {
$("#dialog").dialog('destroy'); // this will remove the dialog
}
});
});
代わりにダイアログを保持したい場合は、イベント ハンドラーを削除できます。スクロール イベントを次のように変更します。
$(window).on("scroll.singleDialog", function () {
if ($(this).scrollTop() > 1400) {
$("#dialog").dialog("open");
} else {
$("#dialog").dialog("close");
}
});
次に、close 関数で、次のようにイベントを削除します。
close : function () {
$(window).off("scroll.singleDialog");
}
.singleDialog
私が使用している名前空間の例です。特定のハンドラーには、好きな名前を使用できます。詳細については、jQuery .on() および .off() を参照してください。