【发布时间】:2015-11-03 15:57:41
【问题描述】:
考虑以下情况:
<ul>
<li></li>
<!-- the minimum amount is at least 7 elements -->
</ul>
设 li 元素的索引为 1 2 3 4 5 6 7
在这种情况下,中间元素是 4。如果我将鼠标悬停在 5、6、7 上,我希望隐藏子列表的第一个元素并显示列表的下一个元素(如果存在)。
所以如果列表是 1 2 3 4 5 6 7 当我悬停 5 6 7 它变成 2 3 4 5 6 7 8(索引为 8 的元素出现,索引为 1 的元素显示:无) 现在中间元素变为 5 (middleIndex++ if hoveredIndex > middleINDex) 现在,如果我将鼠标悬停在 2 3 4 上,列表将恢复到原来的状态 1 2 3 4 5 6 7。
我现在拥有的是这样的:
$('ul li').mouseover(function()
{
var middleIndex = 3;
var index= $(this).parent().children().index(this);
if(index > middleIndex)
{
// pseudo code
firstElementOfSublist.hide();
followingElementOfSublist.show();
//how do I find the last element of the sublist?
//how do I find the first element of the sublist?
}
}
这是一个 JSFiddle 链接:http://jsfiddle.net/hrapua2y
【问题讨论】:
-
我刚刚有了一个想法:因为我们总是知道索引,所以 index-3 将是第一个元素的索引, index +3 将是最后一个元素的索引(子列表的大小固定为7)。现在的问题是,我如何将元素向左或向右移动(动画)以填充 display: none; ?
标签: javascript jquery html css jquery-animate