效果预览
思路
将当前列表滚动至最后一项的末尾,然后瞬间切换回第一项
问题点
1.用什么方式实现无限轮播
这个问题就是列表滚动到最后时底部会留白(有多余空间)如何处理?
在列表的最后添加列表开头的重复项即可(如图中的10后面出现的1,2,3,4,5既为重复项)。
重复项添加的数目要根据当前列表的高度和列表项的高度一起确定,例如:
列表高度150px
,列表项高度30px
,则需要在当前列表尾部添加150 / 30 = 5
项重复项才可以去除留白。
2.如何让用户无感知的切换回第一项
添加好重复项之后控制好切换时机,当列表滚动到最后一项的末尾(重复项第一项的开头)时,立即进行切换。例如:
列表项共10
项,则让列表向上移动到10 * 30px = 300px
时立即进行切换即可实现无感知切换
代码
<!doctype html><html lang="en"><head> <meta chart="utf-8"> <title>列表无限滚动</title></head><style> .container { position: relative; backgro调音师电影und-color: #a4ffcc; /* 父容器需要有明确的高度 */ hei快速健康减肥方法ght: 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: 3什么是学籍号0px; 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> &l层理t;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列表滚动轮播内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章,希望大家以后多多支持www.887551.com!
本文发布于:2023-04-03 21:07:29,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/611c72a15a509694d9b7e5a85224dd5f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:CSS3实现列表无限滚动/轮播效果.doc
本文 PDF 下载地址:CSS3实现列表无限滚动/轮播效果.pdf
留言与评论(共有 0 条评论) |