这是我的例子:http: //jsfiddle.net/MT5xS/
当您单击第一张图片时,它会被删除,并且后面的所有图像都会向后移动以填充它留下的空间。但是它们移动得太快了,你甚至不知道它们移动了。
我的问题是,如何让这些元素顺利移动?当您移动或删除图标时,基本上就像 iPhone 一样,例如http://youtu.be/-r7K4LTbI4A?t=27s
我不担心 IE6/7/8 或任何其他兼容性问题。
这是我的例子:http: //jsfiddle.net/MT5xS/
当您单击第一张图片时,它会被删除,并且后面的所有图像都会向后移动以填充它留下的空间。但是它们移动得太快了,你甚至不知道它们移动了。
我的问题是,如何让这些元素顺利移动?当您移动或删除图标时,基本上就像 iPhone 一样,例如http://youtu.be/-r7K4LTbI4A?t=27s
我不担心 IE6/7/8 或任何其他兼容性问题。
另一个选项是fadeTo
0,animate()
图像宽度为 0,然后remove()
.
看看这个 jQuery 插件:http ://razorjack.net/quicksand/
它做了我认为你所描述的。您可以使用它或在幕后看看它是如何完成的。我相信他们在所有网格项目上都使用 position: absolute 。
您不想在单击时删除元素,而是希望将目标元素淡出然后删除该元素。请注意,这不能通过链接remove
所需的动画来完成。
如果您选择依赖老派setTimeout()
,则必须记住正确的变量范围。或者,您可以添加一个回调以在动画完成时执行:
var $el = $(this).closest('li'); //no need to operate directly on img imo
$el.animate({
opacity: 0 //plus any other animation you want... height:0, width:0, ...
}, 1000, function() {
$el.remove();
});
我想你想要的是...
$(element).css("visibility", "hidden");
$(element).animate({"width": 0}, "slow", function() {
$(this).remove();
});
试试这个它会向上滑动然后移除
$('.user-pic').live('click', function() {
$(this).closest('li').slideUp('slow', function() {
$(this).remove();
});
});