2011-11-07 48 views
2

我有四个Div一个接一个地在一个主div内并垂直对齐。Div的定位变化点击

像:

DIV1 
DIV2 
DIV3 
DIV4 

我想要的点击任何的DIV,它的点击自带的顶部和其他滑下的div。我如何使用jQuery来做到这一点?

E.g.

如果DIV3被点击的div重新排序本身是这样的:

DIV3 
DIV1 
DIV2 
DIV4 

任何帮助表示赞赏。

+0

请考虑使用[的jsfiddle(http://jsfiddle.net/)为活生生的实例。 – ZenMaster

回答

3

这是一个垂直动画版本,相对定位和相当灵活。

http://jsfiddle.net/bryanjamesross/RgGyF/

+0

不错的代码。我创建了一个[使用事件代理的分支](http://jsfiddle.net/hWJSk/),而不是直接将处理程序分配给内部'div's。 –

2

您可以使用

$('divSelector').click(function() 
{ 
    $(this).parent().prepend(this); 
}); 
+0

Thnabks的帮助 –

+0

而不是通过单击将单独的事件处理程序附加到每个'div',这将是使用事件委派的理想情况。只需使用[.delegate()](http://api.jquery。 com/delegate /)将一个事件处理程序附加到容纳'div'的容器,而不是使用'.click()'向每个div添加一个事件处理程序。 –

0

如果你不需要动画,那么你可以用这个四处移动DOM元素: http://jsfiddle.net/japanick/jx945/

如果你需要的动画,你可以绝对定位的元素,并使用jQuery.animate()中的CSS top属性来移动它们。

+0

如果你需要动画,那么这里是图像的例子,你可以用你的div代替http://jsfiddle.net/rNzf7/ – Maheep