css实现无缝循环滑动

使用纯css实现无缝循环滑动

最近写的项目使用的是vue3,所以通过vue循环图片的方式就会非常简便。

//HTML
<div class="wfhd-one">
      <div class="wfhd-tdryone">
            <div class="wdhs-tdry-one" v-for="(item, i) in tdryArr1" :key="i">
              <img :src="item" alt="" />
            </div>
      </div>
 </div>

在循环的图片数组中,我选择了复制了一份一模一样的放到数组末尾,这样就不用担心图片不够,循环的很尴尬的情况。

其实一般来说多复制一张照片就行,能与初始的第一张照片重叠上就行,我这大盒子的宽度稍微有点儿大,所以复制了一份,大家自己看着办吧~

令人头大的css样式来了~

//css样式
 .wfhd-one {
        width: 100%;
        height: 200px;
        display: float;
        margin-bottom: 20px;
        overflow: hidden;

        .wfhd-tdryone {
          width: 2500px;
          height: 100%;

          .wfhd-tdry-one {
            float: left;
            width: 250px;
            height: 100%;
            position: relative;
            animation: tdry 24s linear infinite;
            @keyframes tdry {
              0% {
                transform: translateX(0%);
              }
              100% {
                transform: translateX(-1250px);
              }
            }

            img {
              width: 100%;
              height: 100%;
            }
          }
        }
      }

效果就是一排图片在无限连接着滑动,不会间断。突然不知道怎么形容这个。。。关键词就是无限循环滑动,请自行脑补。。。

难点其实在于计算它滑动的距离,是在啥时候能和初始的状态重叠上,悄悄拿出我的计算机,归零归零归零~~~

实现图片无缝滚动并且可以手动滑动,可以使用CSS的动画和滚动条属性。以下是一个简单的实现示例: HTML代码: ```html <div class="scroll-container"> <div class="scroll-content"> <img src="image1.jpg" alt="Image 1"> <img src="image2.jpg" alt="Image 2"> <img src="image3.jpg" alt="Image 3"> <img src="image4.jpg" alt="Image 4"> </div> </div> ``` CSS代码: ```css .scroll-container { width: 100%; overflow-x: scroll; -webkit-overflow-scrolling: touch; /* 支持在移动设备上使用手指滑动 */ } .scroll-content { display: flex; width: max-content; animation: scroll 20s linear infinite; } .scroll-content img { width: 100%; height: auto; object-fit: cover; flex-shrink: 0; } @keyframes scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } } ``` 这段代码中,我们首先创建一个父容器 `.scroll-container`,并设置其 `overflow-x` 属性为 `scroll`,以便在容器中显示水平滚动条。我们还使用 `-webkit-overflow-scrolling: touch` 属性来支持在移动设备上使用手指滑动。 然后,我们创建一个子容器 `.scroll-content`,并使用 `display: flex` 属性将其内部的图片排成一行。我们为 `.scroll-content` 容器添加了一个动画 `scroll`,持续时间为20秒,并设置它为无限循环播放。 最后,我们使用 `@keyframes` 规则来定义动画的滚动效果。在 `0%` 时,图片处于容器的最左侧;在 `100%` 时,图片向左移动容器的宽度,并形成无缝滚动的效果。 需要注意的是,以上代码中的滚动效果是自动播放的,如果需要手动滑动,则需要添加一些JavaScript代码来实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值