2011-05-26 42 views
0

我試圖讓對話框從屏幕的一側飛入,比方說,頂端。我能夠用一些骯髒的黑客來做到這一點,但是,它的表現非常不理想。這裏是我的代碼:jQuery對話框飛入

$(':button').click(function() { 
    $('<div class="myDialog" title="Test"></div>').dialog({ 
    'position' : 'top' 
    }).dialog('widget').css({ 
    'position' : 'fixed', 
    'top' : '0', 
    'height' : '0' 
    }).animate({ 
    'height' : '200' 
    }, 1000, function() { 
    $(this).animate({ 
     'top' : '40%' 
    }, 1000); 
    }); 
}); 

在jQuery UI中沒有任何處理這種方式我希望的效果。有沒有一種方法可以提高其性能,因此它很順利?如果可能,我想避免使用插件。

謝謝你的時間。

編輯:好吧,這裏是我偶然來到了,隨着smellofgreen的幫助:

$(':button').click(function() { 
    $('<div class="myDialog" title="Test"></div>').dialog({ 
    'position' : 'top' 
    }).dialog('widget').css({ 
    'position' : 'fixed', 
    'top' : $(document).height()+200, //Here was the crown-jewel 
    'display' : 'none' 
    }).slideDown('slow', function() { //Thanks to smellofgreen 
    $(this).animate({ 
     'top' : '40%' 
    }); 
    }); 
}); 

回答

1

我也只有用寬鬆的使用效果基本show()/了slideDown(插件類似的東西)方法:

$('body').append('<div id="terminal-status"></div>'); 
$('#terminal-status').slideUp(0).load(/* load your content */), function() { 
    $('#terminal-status').slideDown(900,'easeOutCirc'); 
} 

沒有顯示的CSS是按您的意願定位的。

+0

啊....讓我看看,看到我得到:) – 2011-05-26 20:50:08

+0

如此接近。表現要好得多,但滑下來和下移之間仍然存在一點點暫停。所以,這看起來不自然。有沒有辦法縮小這個差距? – 2011-05-26 20:54:46

+0

哇!我只是做了一個完全有效的改變!我將你的想法用於「幻燈片」技術。我只是需要我滑下來。我會在上面發佈我的代碼。爲你+1! – 2011-05-26 21:05:56