2011-10-12 34 views
0

我有一個燈箱我已經放在一起,當下一個/上一個被點擊時會淡入圖像。在圖像顯示之前運行動畫

我遇到麻煩的是,在圖像出現之前將lightbox的寬度和高度設置爲動畫效果。

$('img#image').animate({ opacity: 0 }, 500) 

$('img#image').attr('src', image).load(function() { 

    var imgWidth = $('img#image').width(); 
    var imgHeight = $('img#image').height(); 

    $('#lightbox').animate({ 'width': imgWidth + 20 }, 500).delay(1000); 
    $('#lightbox').animate({ 'height': imgHeight + 100 }, 500).delay(1000); 
    $('#lightbox img#image').animate({ opacity: 1 }, 500); 

}); 

在頂端,我動畫當前的圖像,因此fadesout,然後用新的圖片替換它。然後我加載一個函數,該函數獲取圖像的高度和寬度,並將lightbox的高度和寬度設置爲動畫,使其大於實際圖像。

任何幫助將是巨大的幫助。

在此先感謝。

回答

0

也許隱藏圖像先調整,然後再顯示:

$('img#image').animate({ opacity: 0 }, 500) 

$('img#image').hide(); // ADDED THIS LINE 

$('img#image').attr('src', image).load(function() { 

    var imgWidth = $('img#image').width(); 
    var imgHeight = $('img#image').height(); 

    $('#lightbox').animate({ 'width': imgWidth + 20 }, 500).delay(1000); 
    $('#lightbox').animate({ 'height': imgHeight + 100 }, 500).delay(1000); 

    $('img#image').show(); // ADDED THIS LINE 

    $('#lightbox img#image').animate({ opacity: 1 }, 500); 

}); 
+0

感謝回去我。我已經嘗試過這一點,並且在燈箱的寬度和高度發生變化之前圖像仍然出現。當運行$('img#image')。attr('src',image)時,似乎會出現圖像,然後在隱藏它時消失,然後在動畫發生時重新動畫。很煩人。謝謝你嘗試! –

+0

我認爲這個http://leandrovieira.com/projects/jquery/lightbox/完全是你想要的 - 看看源代碼,看看它們是如何做到的...... – ManseUK