2013-02-28 70 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