首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平滑jQuery过渡

问平滑jQuery过渡
EN

Stack Overflow用户
提问于 2015-11-03 18:40:25
回答 1查看 21关注 0票数 0

我有以下代码:

代码语言:javascript
复制
<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>

JSFIDDLE

我希望右边的动画和左边的动画一样流畅。这是如何做到的呢?我认为它在右边减速的原因是因为它遍历了所有的LI,以便找到最大指数,但我不确定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-03 19:07:02

从第一个if语句中删除&& visibleRows == 7,或者将其更改为&& visibleRows >= 7,都解决了这个问题。

当其中一个窗格处于转换状态时,visibleRows将计算为8或更多,这将导致其停止,直到鼠标再次移动时才会继续。如果允许在鼠标向中央移动时运行代码,则动画将很好地排好队。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33506663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档