任何人都可以建議如何使用下面的插件時點擊交換框改變背景顏色?定製swap()插件爲背景色設置動畫效果
http://www.vertstudios.com/blog/swap-jquery-plugin/(見演示)
我不知道如何的jsfiddle鏈接到插件,所以不能證明不幸。
該方法爲所有盒子的位置設置動畫,隻影響位置發生變化的盒子的位置。我試圖添加一個方法來動畫背景顏色,但沒有成功。
我不認爲這是可能的,如果沒有自定義插件,但我可能是錯的。
更新:
感謝約翰。我應該說我實際上需要背景顏色在交換後動畫回到默認值。我已經在下面的修改中嘗試了你的解決方案。正如你所看到的,它的行爲不一致。我認爲正確的做法是自定義fakeFloat方法。
$("#swapTrigger").click(function()
{
var index1 = $('input:radio[name=index1]:checked').val();
var index2 = $('input:radio[name=index2]:checked').val();
boxes = $(boxes).swap(index1,index2);
var $box1 = $('.box').eq(index1);
var $box2 = $('.box').eq(index2);
var randomHex = '#fc0';
$box1.animate({ backgroundColor: "#fc0" }, 300);
$box2.animate({ backgroundColor: "#fc0" }, 300);
$(boxes).fakeFloat({margin: 10, offset: 20, speed: 300}).each(function()
{
$box1.animate({ backgroundColor: "#fff" }, 300);
$box2.animate({ backgroundColor: "#fff" }, 300);
$(this).html($(this).getIndexOf(boxes));
});
而當您嘗試爲backgroundcolor設置動畫時會發生什麼?顏色沒有變化的問題?或者在正確的時間不讓你的事件發生? – Johan
代碼迭代,並動畫所有的盒子,所以它們的顏色變化 - 不僅僅是要交換的。我認爲解決方案是將默認的backlgroundcolor值傳遞給fakeFloat方法,其中所有框都是動畫的。除了更改要交換框的索引的backgroundcolor值。我只是無法弄清楚如何去做。 – user1405195
我想你是通過你想交換的元素的索引,對吧?那就是你想要換色的那些相同的盒子? – Johan