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让登陆面板3D旋转起来
May 03 HTML / CSS
CSS3 分类菜单效果
May 27 HTML / CSS
HTML5拖放功能_动力节点Java学院整理
Jul 13 HTML / CSS
浅谈three.js中的needsUpdate的应用
Nov 12 HTML / CSS
HTML5 Video/Audio播放本地文件示例介绍
Nov 18 HTML / CSS
使用HTML5的Notification API制作web通知的教程
May 08 HTML / CSS
用HTML5制作烟火效果的教程
May 12 HTML / CSS
HTML5拖拽的简单实例
May 30 HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 HTML / CSS
amazeui时间组件的实现示例
Aug 18 HTML / CSS
Html5基于canvas实现电子签名并生成PDF文档
Dec 07 HTML / CSS
CSS3 制作的悬停缩放特效
Apr 13 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
浅析php header 跳转
2013/06/17 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
jQuery调用WebService的实现代码
2011/06/19 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
Form表单及django的form表单的补充
2019/07/25 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
python 实现多维数组(array)排序
2020/02/28 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
关于母亲节的感言
2014/02/04 职场文书
四年级科学教学反思
2014/02/10 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
融资租赁计划书
2014/04/29 职场文书
带病坚持工作事迹
2014/05/03 职场文书
工作总结与自我评价
2014/09/18 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书