任何人都可以建议如何使用下面的插件时点击交换框改变背景颜色?定制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