CSS3实现列表无限滚动轮播效果

1,944 阅读2分钟

我正在参加「码上掘金挑战赛」详情请看:码上掘金挑战赛来了!

CSS3实现列表无限滚动轮播效果

码上掘金展示

code.juejin.cn/pen/7145007…

详细设计过程

本文给大家分享CSS3实现列表无限滚动/轮播效果,实现思路大概是将当前列表滚动至最后一项的末尾,然后瞬间切换回第一项,怎么实现无限轮播效果,

思路

将当前列表滚动至最后一项的末尾,然后瞬间切换回第一项

问题点

1.用什么方式实现无限轮播

这个问题就是列表滚动到最后时底部会留白(有多余空间)如何处理?

列表的最后添加列表开头的重复项即可(如图中的10后面出现的1,2,3,4,5既为重复项)。

重复项添加的数目要根据当前列表的高度和列表项的高度一起确定,例如:

列表高度150px,列表项高度30px,则需要在当前列表尾部添加150 / 30 = 5项重复项才可以去除留白。

2.如何让用户无感知的切换回第一项

添加好重复项之后控制好切换时机,当列表滚动到最后一项的末尾(重复项第一项的开头)时,立即进行切换。例如:

列表项共10项,则让列表向上移动到10 * 30px = 300px时立即进行切换即可实现无感知切换

主要核心代码

 .container > .scroll-list > div {
        width :  100%;
       /* 滚动的项目需要有具体的高度 */
       height :  30px;
        background-color :  #1ea7ff;
        display: flex;
        justify-content :  center;
         align-items:  center;
        color :  white;

    }

....
  @keyframes  scroll{
        100% {
            /* 需要滚动内容的总高度 */
            top:  -300px;
        }
    }
    

到此这篇关于CSS3实现列表无限滚动/轮播的文章就介绍到这了,这里只是简单的实现了一下,具体跟多的可以产靠css的官方一些简绍等