2011-11-09 89 views
3

我有一個帶有span標籤的容器,如果我點擊span元素,我需要有一個爆炸動畫並移除該元素。用jquery爆炸動畫

我能夠使用淡入淡出效果,但我不知道如何使用爆炸效果。如果採用這種方式,它只是刪除無任何動畫:

的CSS:

#container a span { display:none; background-image:url(images/remove.png); background-repeat:no-repeat; width:16px; height:16px; position:absolute; right:0px; top:0px;} 
#container a:hover span { display:block;} 

淡入淡出效果:

$('.container a span').live('click', function (e) { 
       $(this).closest('div.container').fadeOut("normal", function() { 
        $(this).remove(); 
           }); 
       return false; 
    }); 

爆炸影響

$('.container a span').live('click', function (e) { 
        $(this).closest('div.container').fadeOut("normal", function() { 
        $(this).hide('explode', { pieces: 25 }, 600); 
         $(this).remove(); 
            }); 
        return false; 
}); 

這些是動態添加我在哪裏綁定,如下所示的圖像:

uploader.bind('FileUploaded', function (up, file, res) { 
      $('#container').append("<div class='container a'><a href='#'><img src='uploads/" + document.getElementById("currentDirectory").value + "/" + file.name + "' width='64' height='64'/><span></span></a></div>"); 

      $('.container a span').live('click', function (e) { 
       $(this).closest('div.container').fadeOut("normal", function() { 
        $(this).remove(); 
       }); 
       return false; 
      }); 
}); 

這是我顯示的圖片:

<div id="container"> 

    </div> 
+0

難道僅僅是在你的問題中有一個錯字,你在這段代碼中引用了「this」:'$(「this」)。hide(...)'? – nnnnnn

+0

你可能最有可能從uploader.bind函數中移除活動部分,過去當我這樣做時,活着對我來說並沒有很好地發揮。你想爆炸什麼?你有X,這意味着刪除,然後爆炸圖像? http://jsfiddle.net/jancel/m6HAR/3/ –

+0

感謝您指出,雖然如果刪除報價它不起作用。 – coder

回答

5

I think this is what you want?

$('.container a span').live('click', function (e) { 
    $(this).hide('explode', { "pieces":25 }, 600, function() { $(this).remove; }); 
    return false; 
}); 
+0

請注意,我在提供的JSFiddle中包含了JQueryUI庫。 –

+0

感謝您的回覆,但它只是刪除span元素而不是圖像。 – coder

+0

你可以發佈有問題的HTML嗎?這應該刪除跨度以及跨度中的任何內容。它不會刪除href,也許它是一個更好的主意,移動一個(鏈接)。 http://jsfiddle.net/jancel/m6HAR/1/。此外,這也可以爆炸整個鏈接,只需添加您在上述小提琴中看到的相同的.parent('a')。 –