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的transition效果和transfor效果示例介绍
Oct 30 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
css3实现的多级渐变下拉菜单导航效果代码
Aug 31 HTML / CSS
CSS3实现伪类hover离开时平滑过渡效果示例
Aug 10 HTML / CSS
HTML5 与 XHTML2
Oct 17 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
Jan 30 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
Mar 07 HTML / CSS
移动端html5 meta标签的神奇功效
Jan 06 HTML / CSS
HTML5实现桌面通知 提示功能
Oct 11 HTML / CSS
移动端Html5页面生成图片解决方案
Aug 07 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
Jan 27 HTML / CSS
分享CSS盒子模型隐藏的几种方式
Feb 28 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
javascript元素动态创建实现方法
2015/05/13 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
通过javascript进行UTF-8编码的实现方法
2016/06/27 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
2017/08/01 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python实现人像动漫化的示例代码
2020/05/17 Python
python打包生成so文件的实现
2020/10/30 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
Dyson加拿大官方网站:购买戴森吸尘器,风扇,冷热器及配件
2016/10/26 全球购物
《与象共舞》教学反思
2014/02/24 职场文书
求职自荐信怎么写
2014/03/06 职场文书
电视节目策划方案
2014/05/16 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android