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 相关文章推荐
详解CSS样式中的 !important * _ 符号
Mar 09 HTML / CSS
不同浏览器对CSS3和HTML5的支持状况
Oct 31 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
Feb 11 HTML / CSS
CSS3中Transition动画属性用法详解
Jul 04 HTML / CSS
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
Jun 01 HTML / CSS
html5视频播放_动力节点Java学院整理
Jul 13 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
Sep 26 HTML / CSS
html5使用canvas画三角形
Dec 15 HTML / CSS
HTML块级标签汇总(小篇)
Jul 13 HTML / CSS
如何避免常见的6种HTML5错误用法
Nov 06 HTML / CSS
Canvas与图片压缩的示例代码
Nov 28 HTML / CSS
Canvas环形饼图与手势控制的实现代码
Nov 08 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
php 注册时输入信息验证器的实现详解
2013/07/05 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
2017/04/10 PHP
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
针对初学者的jQuery入门指南
2015/08/15 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
jQuery解析XML 详解及方法总结
2016/09/28 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
Threejs实现滴滴官网首页地球动画功能
2020/07/13 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
EJB发布WEB服务一般步骤
2012/10/31 面试题
php优化查询foreach代码实例讲解
2021/03/24 PHP
小区文明倡议书
2014/05/16 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
高质量“欢迎词”
2019/04/03 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技