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


Posted in HTML / CSS onJune 23, 2021

效果预览

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

思路

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

问题点

1.用什么方式实现无限轮播
这个问题就是列表滚动到最后时底部会留白(有多余空间)如何处理?
列表的最后添加列表开头的重复项即可(如图中的10后面出现的1,2,3,4,5既为重复项)。
重复项添加的数目要根据当前列表的高度和列表项的高度一起确定,例如:
列表高度150px,列表项高度30px,则需要在当前列表尾部添加150 / 30 = 5项重复项才可以去除留白。

2.如何让用户无感知的切换回第一项
添加好重复项之后控制好切换时机,当列表滚动到最后一项的末尾(重复项第一项的开头)时,立即进行切换。例如:
列表项共10项,则让列表向上移动到10 * 30px = 300px时立即进行切换即可实现无感知切换

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表无限滚动</title>
</head>
<style>
    .container {
        position: relative;
        background-color: #a4ffcc;
        /* 父容器需要有明确的高度 */
        height: 150px;
        width: 200px;
        margin: auto;
        overflow: hidden;
    }

    .container > .scroll-list {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        animation: scroll 6s linear infinite normal;
    }

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

    .container > .scroll-list > div:nth-child(2n) {
        background-color: #18d9f8;
    }

    @keyframes scroll {
        100% {
            /* 需要滚动内容的总高度 */
            top: -300px;
        }
    }
</style>
<body>
    <div class="container">
        <div class="scroll-list">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
            <div>10</div>
            <!-- 下面代码是为了让滚动内容能够多展示一屏(去除留白/无限轮播):数量请自行根据高度进行计算 -->
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </div>
    </div>
</body>
</html>

到此这篇关于CSS3实现列表无限滚动/轮播的文章就介绍到这了,更多相关css3列表滚动轮播内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3 特效范例整理
Aug 22 HTML / CSS
button在IE6/7下的黑边去除方案
Dec 24 HTML / CSS
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
May 07 HTML / CSS
纯css3实现的鼠标悬停动画按钮
Dec 23 HTML / CSS
使用CSS3的::selection改变选中文本颜色的方法
Sep 29 HTML / CSS
整理的15个非常有用的 HTML5 开发教程和速查手册
Oct 18 HTML / CSS
HTML5计时器小例子
Oct 15 HTML / CSS
HTML5 Canvas中使用用路径描画圆弧
Jan 01 HTML / CSS
使用HTML5中的contentEditable来将多行文本自动增高
Mar 01 HTML / CSS
用html5绘制折线图的实例代码
Mar 25 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
Jan 05 HTML / CSS
H5 video poster属性设置视频封面的方法
May 25 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
德生PL660的电路分析和打磨
2021/03/02 无线电
人大复印资料处理程序_输入篇
2006/10/09 PHP
PHP函数超时处理方法
2016/02/14 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
javascript结合fileReader 实现上传图片
2015/01/30 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
记一次react前端项目打包优化的方法
2020/03/30 Javascript
python中二维阵列的变换实例
2014/10/09 Python
Python的装饰器使用详解
2017/06/26 Python
Python探索之SocketServer详解
2017/10/28 Python
python 实现在txt指定行追加文本的方法
2018/04/29 Python
详解python Todo清单实战
2018/11/01 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
2020/02/18 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
通信工程毕业生求职信
2013/11/16 职场文书
自我评价格式
2014/01/06 职场文书
工程部部长岗位职责
2015/02/12 职场文书
节水宣传标语口号
2015/12/26 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
在 Golang 中实现 Cache::remember 方法详解
2021/03/30 Python
Go语言带缓冲的通道实现
2021/04/26 Golang
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
比较几种Redis集群方案
2021/06/21 Redis
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers