当前位置: 首页 > news >正文

css:无限滚动波浪线

以上是需要实现的效果,一条无限滚动波浪线,可以用来做区块的分割线。

要形成上下交替的圆形,思路是给div加圆角边框,第一个只有上边框,第二个只有下边框。

循环了100个div,这个数量根据自己容器宽度调整,或者动态计算。

<div class="wave-container"><div class="waves"><div class="wave" v-for="item in 100"></div></div>
</div>

css需要注意的点就是容器overflow要设置hidden,然后使用奇数偶数来设置上下边框。 

.wave-container {margin-top: 10%;overflow: hidden;display: flex;}.waves {display: flex;}
.wave:nth-child(odd) {border-radius: 50% 50% 0 0;border-top: 1px solid #55aaff;}.wave:nth-child(even) {border-radius: 0 0 50% 50%;border-bottom: 1px solid #55aaff;}

这样一条静态的波浪线就生成了,然后要让它动起来,加上动画即可,设置infinite,就会无限滚动。

.waves {display: flex;animation: wave-scroll 20s linear infinite;}@keyframes wave-scroll {from {transform: translateX(0);}to {transform: translateX(-100%);}}

 但是现在的效果是波浪滚动全滚动到左边后,就产生空白了,要形成无缝衔接的效果,就需要复制一个相同的波浪,如下图,1号和2号,它俩都向左移动,当1号移出容器后,2号替代1号占据了容器,此时1号已经移动到-100%的位置,然后1号又回到0%重新向着-100%运动,如此交替移动,形成无缝衔接,平时经常用到的无缝衔接滚动列表也可以用这个思路实现。

以下是全部代码:

<template><div class="wave-container"><div class="waves"><div class="wave" v-for="item in 100"></div></div><div class="waves"><div class="wave" v-for="item in 100"></div></div></div>
</template><script>
</script><style scoped>.wave-container {margin-top: 10%;overflow: hidden;display: flex;}.waves {display: flex;animation: wave-scroll 20s linear infinite;}@keyframes wave-scroll {from {transform: translateX(0);}to {transform: translateX(-100%);}}.wave {width: 30px;height: 30px;}.wave:nth-child(odd) {border-radius: 50% 50% 0 0;border-top: 1px solid #55aaff;}.wave:nth-child(even) {border-radius: 0 0 50% 50%;border-bottom: 1px solid #55aaff;}
</style>

相关文章:

  • npm和nvm和nrm有什么区别
  • 机器视觉光源选型解析:照亮工业检测的“智慧之眼”
  • Springboot 异步场景 使用注解 @Async 及 自定义线程池分模块使用
  • LED点阵屏模块
  • WebSocket 客户端 DLL 模块设计说明(基于 WebSocket++ + Boost.Asio)
  • 【前端优化】vue2 webpack4项目升级webpack5,大大提升运行速度
  • Linux信号的保存
  • 裸金属服务器和云服务器之间的差别
  • Dify中使用插件LocalAI配置模型供应商报错
  • [Java][Leetcode middle] 238. 除自身以外数组的乘积
  • 挖o心得(1)
  • BUFDS_GTE2,IBUFDS,BUFG缓冲的区别
  • 技术解码 | 腾讯云SRT弱网优化
  • Vue3 加快页面加载速度 使用CDN外部库的加载 提升页面打开速度 服务器分发
  • sqli-labs靶场23-28a关(过滤)
  • WHAT - 缓存命中 Cache Hit 和缓存未命中 Cache Miss
  • 掌握HTML文件上传:从基础到高级技巧
  • 我设计的一个安全的 web 系统用户密码管理流程
  • 国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应
  • 【Python-Day 14】玩转Python字典(上篇):从零开始学习创建、访问与操作
  • 新闻1+1丨强对流天气频繁组团来袭,该如何更好应对?
  • 美联储官员:美国经济增速可能放缓,现行关税政策仍将导致物价上涨
  • 海昏侯博物馆展览上新,“西汉帝陵文化展”将持续展出3个月
  • 外交部部长助理兼礼宾司司长洪磊接受美国新任驻华大使递交国书副本
  • 中国—美国经贸合作对接交流会在华盛顿成功举行
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会