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中Transform动画属性用法详解
Jul 04 HTML / CSS
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
Nov 18 HTML / CSS
CSS的pointer-events属性详细介绍(作用和注意事项)
Apr 23 HTML / CSS
详解CSS3浏览器兼容
Dec 14 HTML / CSS
CSS3制作3D立方体loading特效
Nov 09 HTML / CSS
CSS3只让背景图片旋转180度的实现示例
Mar 09 HTML / CSS
canvas绘制表情包的示例代码
Jul 09 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
Apr 03 HTML / CSS
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
Nov 22 HTML / CSS
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
Jan 06 HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 HTML / CSS
HTML5拖拽API经典实例详解
Apr 20 HTML / CSS
HTML5页面音频自动播放的实现方式
Jun 21 #HTML / CSS
html中显示特殊符号(附带特殊字符对应表)
CSS中Single Div 绘图技巧的实现
CSS几步实现赛博朋克2077风格视觉效果
教你做个可爱的css滑动导航条
Html5大屏数据可视化开发的实现
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/12/06 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
JS定时刷新页面及跳转页面的方法
2013/07/04 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
js动态切换图片的方法
2015/01/20 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
对vuex中store和$store的区别说明
2020/07/24 Javascript
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python模拟登录验证码(代码简单)
2016/02/06 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
浅谈django orm 优化
2018/08/18 Python
Python对象的属性访问过程详解
2020/03/05 Python
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
心得体会怎么写
2013/12/30 职场文书
车队安全员岗位职责
2015/02/15 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang