在您的初始代码集中autoOpen: false
。这将阻止对话框在初始化时打开。然后,您可以$("#dialog").dialog("open")
使用与第二段代码类似的滚动事件来专门调用。
如果您希望show
动作更慢,您可以为动画添加其他选项。一个例子是:
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
width: 200,
height: 200,
show: {
effect: 'slide',
duration: 2000 // 2 second duration
},
hide: 'puff'
});
});
查看所有可用选项的对话框 api。
你可以做两件事让它出现一次:
销毁对话框,或删除事件处理程序。
对于两者,您都可以指定在关闭对话框时执行的函数,如下所示:
$(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 : function () {
$(window).off("scroll.singleDialog");
}
.singleDialog
只是我正在使用的一个示例命名空间。您可以为您的特定处理程序使用任何您喜欢的名称。您可以查找 jQuery .on() 和 .off() 以获取更多信息。