使用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实现列表无限滚动/轮播相关推荐

  1. Swift 4 无限滚动轮播图(UICollectionView实现)

    作为一个资深(自认为)iOS程序猿,会经常用到轮播图,但是总是感觉自己实现要比直接用别人的要方便一点,并且有一些需求需要深度定制,于是想着自己封装一个可以定制化的轮播图库JCyclePictureVi ...

  2. css通知页面,CSS3 transition 实现通知消息轮播条

    Vue 版本,拷贝到文件即可使用 {{ item }} export default { data () { return { // 开启动画 isAnimated: false, // 轮播数据 d ...

  3. 利用jQuery实现图片无限循环轮播(不借助于轮播插件)

    原来我主要是用Bootstrap框架或者swiper插件实现轮播图的功能,而这次是用jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要 ...

  4. Android之ViewPager实现图片无限循环轮播

    很久没有写博客了,之前花时间写了一个Viewpager实现的无限图片轮播,个人感觉还是很好用的QAQ,源码和思路都还算清晰 实现的效果图如下: 这里要补充一下,在这个项目中我把图片轮播写进了一个Vie ...

  5. CSS3动画实现背景图轮播

    CSS3动画实现背景图轮播 利用css3动画切换背景图的路径:使这个动画无限循环下去,以实现背景图切换的效果. 代码: <!DOCTYPE html> <html lang=&quo ...

  6. 【Swift】自定义控件无限轮播 + 无限图片轮播

    CocoaPods安装 pod 'PGBannerSwift' 复制代码 使用 1.无限图片轮播 首先引入import PGBannerSwift let banner = PGBanner(fram ...

  7. 一种无限循环轮播图的实现原理

    本文来自 http://www.jianshu.com/p/ef03ec7f23b2 轮播实现步骤 接下来,笔者将从各方面逐一分析 层级结构 最底层是一个UIView,上面有一个UIScrollVie ...

  8. 原生JS实现PC端无缝滚动轮播图、匀速轮播图、匀速动画

    offset家族的了解 1.offsetHeight:元素的offsetHeight是一种元素CSS高度的衡量标准,包括元素的边框.内边距和元素的水平滚动条(如果存在且渲染的话),不包含:before ...

  9. JS经典案例-无缝滚动轮播图(纯JS)

    滚动轮播图 在JS初级阶段,轮播图是最基础最经典的案例,而相比于渐变轮播图,无缝滚动轮播图又要更难一点.渐变轮播图仅需要使用到点击事件.定时器等,而无缝滚动轮播图则需要考虑到 第一张>最后一张, ...

最新文章

  1. Visual C++ 时尚编程百例009(响应键盘)
  2. Python 程序 运行过程
  3. android studio开关控件,Android studio实现滑动开关
  4. 如今谁在使用Python
  5. 如何用Lucene实现实时搜索--Tripod
  6. 一文看懂3D封装技术
  7. 一种简单的输出负电源电路(部分电平转换芯片的工作原理)
  8. 11-新闻发布系统数据库-新闻数据操作
  9. 90%企业都适用,搭建性能监控体系照抄就行
  10. 数据分析师的工作绩效到底是什么?
  11. ELK (三)安装kibana
  12. dell服务器硬件检测cable,DELL服务器硬件报错解决方法——错误代码寄解决和处理办法...
  13. java white case语句_JAVA基础(一)
  14. centos7安裝搜狗輸入法_sogou-input-in-centos7
  15. 快速减肥的30种方法
  16. Winform MDI窗体子窗体显示区域大小
  17. 繁体中文和简体中文编码
  18. python中查找文件当前位置的命令为tell()_Python文件处理之seek(), tell()用法...
  19. 进程计划和计划任务管理
  20. 36-Mybatis

热门文章

  1. 关于电子商务的一些描述
  2. android 加载大图 代理,Android 加载大图
  3. CSS3渐变效果工具
  4. 浏览器 pad android,Android浏览器(PAD版)开发问题总结
  5. 51nod138夹克老爷的逢三抽一
  6. 研究揭示情报机构通过简单通话记录就能追查敏感信息
  7. 五子棋AI设计(转载)
  8. 汽车租赁问题(Car Rental)
  9. hdu1434幸福列车
  10. android仿照360壁纸照片显示特效,Android仿360桌面手机卫士悬浮窗效果