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色彩
Jan 16 HTML / CSS
css3 border-image使用说明
Jun 23 HTML / CSS
css3实现3D色子翻转特效
Dec 23 HTML / CSS
CSS3中的clip-path使用攻略
Aug 03 HTML / CSS
一篇文章带你学习CSS3图片边框
Nov 04 HTML / CSS
CSS3实现的渐变幻灯片效果
Dec 07 HTML / CSS
HTML5移动开发图片压缩上传功能
Nov 09 HTML / CSS
HTML5 embed标签定义和用法详解
May 09 HTML / CSS
html5 canvas实现给图片添加平铺水印
Aug 20 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
Jun 09 HTML / CSS
前端水印的简单实现代码示例
Dec 02 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
Feb 15 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
世界收音机发展史
2021/03/01 无线电
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
vue中用动态组件实现选项卡切换效果
2017/03/25 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
python实现红包裂变算法
2016/02/16 Python
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Python编写一个优美的下载器
2018/04/15 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
物流司机岗位职责
2013/12/28 职场文书
房地产销售经理岗位职责
2014/01/01 职场文书
教师节促销活动方案
2014/02/14 职场文书
客服部班长工作责任制
2014/02/25 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
政协工作总结2015
2015/05/20 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers