react 实现手机端首页无缝轮播

这篇博客介绍了作者首次尝试使用JavaScript和React实现手机端无缝轮播图的过程。文章中提到了关键概念,如利用transform的translate和transition属性实现平滑过渡,并通过三层结构布局完成轮播效果。作者分享了实现思路,包括设置屏幕宽度、图片宽度和利用translate进行平移。最后,作者欢迎大家指正并轻松交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要注明一下本人是首次写js相关博客,如有什么错误的地方,还请大家多多指正!谢谢!!!

其中关于轮播部分有部分参考了一下这位前辈的代码,也是让我对无缝轮播有个清楚的概念,也很感谢这位前辈。
http://www.jianshu.com/p/1b1a06b579b2

目前掌握的概念:
实现轮播可以采用transform中的translate,左移为transform: translate(-xx px) + transition:0.5s

一共设置三层结构,最外层div为整个屏幕的宽度;ul为所有图片的宽度,可以设置为图片张数*100%;而里面每个li也是当前屏幕的宽度,可以设置为ul宽度/图片张数,这样使用translate时就可以实现translate(-屏幕宽度*当前图片位置)即可显示下一张图

```
html:
<div class="slider">
    <ul class="lunbo">
            <li class="slider-item" style="width: 25%;"><img src="a"></li>
            <li class="slider-item" style="width: 25%;"><img src="b"></li>
            <li class="slider-item" style="width: 25%;"><img src="a"></li>
            <li class="slider-item" style="width: 25%;"><img src="b"></li>
    </ul>
    //下面部分为dot
    <div class="slider-dots-wrap">
        <span class="slider-dot"></span>
        <span class="slider-dot"></span>
    </div>
</div>
但是这样的话一旦图片张数轮播结束,后面就是空白,所以可以当图片轮播到最后一张时,将当前所在图片位置设置为0,即回到第一张
但是回到第一张时的动作会与轮播方向相反,因为如果你是左轮播,你的translate从负数转到0,会导致最后一张到第一张是右移
所以可以将需要轮播的图片重新一份加在后面,当然也可以复制第一张图片到最后,方法一样

本文图片为 图a图b图a图b,编号分别为012302相同,13相同,当到达3时跳到1继续轮播
***react部分,其中轮播是一个slider组件

banner.tsx: //这是调用组件的那个文件,公司用到的是typescript
// 从后台获取到图片数据data
getBannerList(data){
        data = data
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值