2013-02-28 59 views
0
function infoBox(title,text){ 
    $('.infobox').dialog({ 
    open: function(event, ui) {$('.infobox').append('<p style="display:none;>'+text+'</p>'); 
    }, 
    beforeClose: function(event, ui) {$('.infobox p').remove(); 
    }, 
    show:'drop' , 
    position:'top', 
    title:title, 
}); 
}; 

是不是有什么东西像afteropen:选项?jquery ui对话框 - 淡入效果

或任何其他方式让ui-effect完成后附加文本淡入?

可能像这样的:show:[{show:'drop', function(){$('.infobox p').fadeIn();}],

在此先感谢

+0

显示: '下拉' 启动效应 – 2013-02-28 23:17:47

回答

2

我想我明白你在找什么。只需使用.delay().fadeIn()即可。

function infoBox(title,text){ 
     $('.infobox').dialog({ 
     open: function(event, ui) { 
      var p = $('<p style="display:none;">'+text+'</p>') 
      $('.infobox').append(p); 
      p.delay(1000).fadeIn(400); 
     }, 
     beforeClose: function(event, ui) {$('.infobox p').remove(); 
     }, 
     show:'drop' , 
     position:'top', 
     title:title, 
    }); 
} 

DEMO:http://jsfiddle.net/dirtyd77/yTMwu/69/


编辑: 你也可以写这样的:

$('.infobox').append('<p style="display:none;">'+text+'</p>').find('p').delay(1000).fadeIn(400); 

DEMO: http://jsfiddle.net/dirtyd77/yTMwu/70/

+1

+1这就是我读它太:) – Archer 2013-02-28 23:29:26

+0

是延迟()正是我搜查,thx – 2013-02-28 23:29:41

+0

也许你可以纠正我,我必须设置变量p与$()和内部的字符串,使他们jquery对象,只有这样我才能应用eff学分?我不明白..但它看起来很棒,我的css =] – 2013-02-28 23:40:48

1

这里是一个工作示例:http://jsfiddle.net/5R49y/3/

HTML:

<div class="infobox" title="dialog"></div> 

的JavaScript(jQuery的/ jQuery用户界面):

function infoBox(title, text) { 
    $('.infobox').dialog({ 
     open: function (event, ui) { 
      var p = $('<p/>').append(text).hide().fadeIn(2000) 
      $('.infobox').append(p); 

}, 
     beforeClose: function (event, ui) { 
      $('.infobox p').remove(); 
     }, 
     show: 'drop', 
     position: 'top', 
     title: title 
    }); 
} 

$(function(){ 
    infoBox('Title','Lorem ipsum'); 
}); 
+0

thx,但延迟适合我,因为元素会很慢地褪色,我的ui-dialog css的高度已打开,并且可能会让它的浮动只有标题栏,然后“构建”文本 – 2013-02-28 23:32:19

+0

只需在'fadeIn()'之前添加一个'delay()'链, – 2013-03-01 02:46:08