$("document").ready(function() {
// まず隠す
if (!$("#move").is(":hidden")) {
$("#move").animate({
height: "toggle",
opacity: "toggle"
});
}
var prevIndex = 0;
// クリックイベントにハンドラをバインド
$("ul li").click(function() {
// クリックされた行の末尾の要素を算出する
var index = $("ul li").index(this);
index += (5 - index % 5);
index -= 1;
// デバッグ用
$("#debug1").text(index);
$("#debug2").text(prevIndex);
// #move をトグル
var move = function() {
$("ul li").eq(index).after($("#move"));
$("#move").animate({
height: "toggle",
opacity: "toggle"
});
prevIndex = index;
};
// 表示されているときは隠す
if (!$("#move").is(":hidden")) {
$("#move").animate({
height: "toggle",
opacity: "toggle"
}, 500, function() {
// 表示されていた行以外がクリックされた場合
if (index != prevIndex) {
// クリックされた行に表示
move();
}
});
}
// 表示されていない場合
else {
// クリックされた行に表示
move();
}
});
});
<ul class="target">
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
</ul>
<div id="move">#move</div>
<div style="clear:both;padding-top:20px;">
<p>index:<span id="debug1">id:debug1</span></p>
<p>prevIndex:<span id="debug2">id:debug2</span></p>
</div>
ul li {
float:left;
margin-left: auto;
margin-right: auto;
padding: 10px 20px;
text-align: center;
display: block;
}
ul.target li:nth-of-type(5n+1) {
clear: both;
}
ul.target li:nth-of-type(2n+2) {
background: lightgrey;
}
#move {
clear:both;
height: 100px;
width: 300px;
background: #678;
}