我有以下代码:
<script>
$(document).ready(
function()
{
var middleIndex = 3;
var maxIndex = $("ul li").length - 1;
var minIndex = 0;
$('ul#reel li').mouseover(function()
{
var index = $(this).parent().children().index(this);
var tempIndex;
var showIndex;
var visibleRows = $("ul li:visible").length;
if(index > middleIndex && visibleRows == 7)
{
tempIndex = middleIndex - 3;
showIndex = middleIndex + 4;
if(tempIndex <= maxIndex && showIndex <= maxIndex)
{
$("ul li:eq("+tempIndex+")").hide(500);
$("ul li:eq("+showIndex+")").show(500);
middleIndex++;
}
}
else if(index < middleIndex)
{
tempIndex = middleIndex + 3;
showIndex = middleIndex - 4;
if(tempIndex <= maxIndex && showIndex >= minIndex)
{
$("ul li:eq("+tempIndex+")").hide("slow");
$("ul li:eq("+showIndex+")").show("slow");
middleIndex--;
}
}
});
});
</script>我希望右边的动画和左边的动画一样流畅。这是如何做到的呢?我认为它在右边减速的原因是因为它遍历了所有的LI,以便找到最大指数,但我不确定。
发布于 2015-11-03 19:07:02
从第一个if语句中删除&& visibleRows == 7,或者将其更改为&& visibleRows >= 7,都解决了这个问题。
当其中一个窗格处于转换状态时,visibleRows将计算为8或更多,这将导致其停止,直到鼠标再次移动时才会继续。如果允许在鼠标向中央移动时运行代码,则动画将很好地排好队。
https://stackoverflow.com/questions/33506663
复制相似问题