css 3d轮播图效果

在react上 实现 的 css 3d 轮播效果

效果图

bbbfly
tip
效果图 正转是 点击切换 反转是模拟触摸切换

思路
  1. css 用到 perspective transform-style 开启3d 效果
  2. 图片 平均分布在 360度 上 (图片数量与圆的半径 需注意 出现图片重叠可调整半径
  3. 轮播切换 通过设置整体角度实现 需注意3d中心点
    bbbfly

css

.carousel{
    
    .wrapper{
        /*设置井深、透视*/
        perspective: 500px;
        transform-style: preserve-3d;
        // transform: rotateX(-5deg);
    }
    .swiper1{
        width: 200px;
    
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基于CSS3D轮播效果,可以实现4张图片的展示: HTML代码: ``` <div class="carousel"> <figure class="slide"> <img src="image1.jpg" alt="Image 1"> </figure> <figure class="slide"> <img src="image2.jpg" alt="Image 2"> </figure> <figure class="slide"> <img src="image3.jpg" alt="Image 3"> </figure> <figure class="slide"> <img src="image4.jpg" alt="Image 4"> </figure> </div> ``` CSS代码: ``` .carousel { position: relative; width: 100%; height: 500px; perspective: 1500px; margin: 0 auto; } .slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 1s; } .slide:nth-child(1) { transform: translateZ(0); } .slide:nth-child(2) { transform: rotateY(90deg) translateZ(200px); } .slide:nth-child(3) { transform: rotateY(180deg) translateZ(200px); } .slide:nth-child(4) { transform: rotateY(270deg) translateZ(200px); } .carousel:hover .slide { transform: rotateY(-90deg); } .slide img { display: block; width: 100%; height: 100%; backface-visibility: hidden; object-fit: cover; } ``` 解释: - `perspective` 属性定义了观察者距离物体的距离,用于增强3D效果。 - `transform-style` 属性定义了子元素如何在3D空间中呈现,`preserve-3d` 值表示子元素保留其3D位置。 - `transform` 属性定义了元素的变换,包括平移、旋转、缩放等操作。`translateZ` 表示在z轴上平移,`rotateY` 表示绕y轴旋转。 - `transition` 属性定义了元素变换的过渡效果。 - `backface-visibility` 属性定义了元素背面是否可见,`hidden` 值表示不可见。 - `object-fit` 属性定义了图片如何适应元素的大小,`cover` 值表示保持宽高比例,填充元素。 点击鼠标滚轮可以进行交互,左右移动鼠标可以旋转轮播图。可以根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值