jQuery UI:对话框显示/隐藏带有选项的效果

jQuery UI: dialog show/hide effects with options

提问人:eje211 提问时间:10/17/2010 更新时间:5/3/2019 访问量:72417

问:

是否可以在jQuery UI中为对话框的显示和隐藏选项指定选项。

例如,代替:

$('#dialog').dialog({
  show: 'fade'
});

像这样:

$('#dialog').dialog({
  show: {effect: 'fade', speed: 1000}
});

(当然,上面的代码不起作用。

我真正想使用的是效果内部的“complete”方法,或者回调函数,这样我就可以在效果完成后选择一些文本。

如果有人知道,谢谢。

jquery-ui

评论


答:

28赞 Lorenzo 10/17/2010 #1

您可以使用以下功能:

$("#dialog").dialog({
        autoOpen: false,
        hide: 'fold',
        show: 'blind'
});

并设置两种不同的效果来隐藏和显示。

不能使用“complete”方法。至少不是实际发布。该功能计划在 1.9 版中推出

希望对您有所帮助

49赞 Ol'timer 11/2/2011 #2

我不知道如何指定所有选项,但我确实设法指定了速度,这是您在示例中的选项。我这样做如下:

$('#dialog').dialog({
show: {effect: 'fade', duration: 250}
hide: {effect: 'fade', duration: 5000}
});

持续时间是动画将持续的毫秒数。我通过使用 firebug 逐步浏览 javascript 发现了这一点。

评论

0赞 Luboš Miřatský 6/7/2019
这是一个很好的解决方案,但是缺少 show 属性后的逗号。应该显示: {effect: 'fade', duration: 250},
2赞 Fernando Valentini 12/7/2011 #3

要查看每种效果的选项,您可以转到 http://docs.jquery.com/UI/Effects 并单击您想要的效果,现在是指定选项。 举例来说,http://docs.jquery.com/UI/Effects/Bounce

哦,顺便说一句,de Fade Effect 没有任何特定的参数。如果使用“反弹效果”,下面是一个代码示例:

$( '#dialog' ).dialog({
show: {effect: 'bounce', duration: 350, /* SPECIF ARGUMENT */ times: 3}
});
-2赞 Drizzel 8/14/2012 #4

试试这个:

snippet.dialog({
open: function(event, ui) {
    snippet.hide(); 
    snippet.fadeIn(); 
}});
0赞 Dimitrios Kontoulis 11/24/2012 #5

我想补充一点,您可以通过在文档中添加以下内容来指定全局效果持续时间。

$.fx.speeds._default = duration;

持续时间可以是一个选项(“慢”、“快”等)或以毫秒为单位的数字

评论

1赞 Frédéric Hamidi 11/24/2012
在修改这个属性(内部,注意前导下划线)之前,我会三思而后行,因为它会影响页面上所有依赖于 jQuery 的脚本,而不仅仅是你的脚本。
0赞 Dimitrios Kontoulis 12/12/2012
你是对的,它对我有用,因为我使用的效果很少。例如,如果有人使用 ui-tabs,过渡会非常慢,持续时间为 >1000 毫秒
0赞 Stefanidis 5/3/2019 #6

position: { my: “bottom”, at: “center”, of: window} 表示底部向上到已支付窗口的中心