异形轮播图,旋转木马(样式放数组) 理解

单纯的就是 相对于谁,谁怎么动的一个情况

原理

将样式放到数组中,然后样式和元素一 一 对应的方式。
	只有左右键加上瞬移效果,防流氓。
	如果还有瞬移的小原点,可以使用防流氓,也
	可以使用节流(上锁)






以三个元素为例

前景声明:   绿色盒子  
			

在这里插入图片描述

点击右键的时候。

在这里插入图片描述

一般咱们认为:点击右键向右移动。(指的是盒子向右移动)

​ 点击右键: 盒子向右移动(元素不动)

​ 相当于 元素向左移动(盒子不动)

​ 相当于 元素的样式向右移动 (元素和盒子不动)

我举个栗子说明

在这里插入图片描述
此时将 样式向右移动

在这里插入图片描述

样式对应的元素就会 动了 结果如下所示:
在这里插入图片描述

此时 因为点击的是右键, 所以 盒子左边的元素会 从盒子上滑动过去(设置动画的话)
所以我们需要使盒子最左边的元素 瞬移(干蹦到)最右边。 其他元素继续动画。
多个元素,也就是往盒子里面多放一些元素
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个异形轮播图的案例,使用了Swiper库实现: HTML代码: ```html <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" style="background-image:url('image1.jpg')"></div> <div class="swiper-slide" style="background-image:url('image2.jpg')"></div> <div class="swiper-slide" style="background-image:url('image3.jpg')"></div> <div class="swiper-slide" style="background-image:url('image4.jpg')"></div> <div class="swiper-slide" style="background-image:url('image5.jpg')"></div> <div class="swiper-slide" style="background-image:url('image6.jpg')"></div> <div class="swiper-slide" style="background-image:url('image7.jpg')"></div> <div class="swiper-slide" style="background-image:url('image8.jpg')"></div> </div> <div class="swiper-pagination"></div> </div> ``` CSS代码: ```css .swiper-container { width: 100%; height: 500px; margin: 0 auto; position: relative; overflow: hidden; } .swiper-slide { width: 50%; height: 100%; background-size: cover; background-position: center; position: absolute; top: 0; left: 0; transition: transform 0.5s ease-in-out; } .swiper-slide:nth-child(1) { transform: translateX(0); } .swiper-slide:nth-child(2) { transform: translateX(50%); } .swiper-slide:nth-child(3) { transform: translateX(100%); } .swiper-slide:nth-child(4) { transform: translateX(150%); } .swiper-slide:nth-child(5) { transform: translateX(200%); } .swiper-slide:nth-child(6) { transform: translateX(250%); } .swiper-slide:nth-child(7) { transform: translateX(300%); } .swiper-slide:nth-child(8) { transform: translateX(350%); } .swiper-pagination { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 10; } .swiper-pagination-bullet { width: 10px; height: 10px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.5); margin: 0 10px; cursor: pointer; } .swiper-pagination-bullet-active { background-color: #fff; } ``` JavaScript代码: ```javascript var swiper = new Swiper('.swiper-container', { slidesPerView: 'auto', centeredSlides: true, spaceBetween: 30, pagination: { el: '.swiper-pagination', clickable: true, }, on: { slideChangeTransitionEnd: function() { var activeIndex = this.activeIndex; var slidesLength = this.slides.length; var halfSlidesLength = Math.floor(slidesLength / 2); var halfIndex = activeIndex % halfSlidesLength; var translateX = halfIndex * 50; var slides = this.slides; for (var i = 0; i < slidesLength; i++) { var slide = slides[i]; var slideIndex = slide.getAttribute('data-swiper-slide-index'); var halfSlideIndex = slideIndex % halfSlidesLength; var zIndex = halfSlidesLength - Math.abs(halfIndex - halfSlideIndex); slide.style.transform = 'translateX(' + (50 * (slideIndex - activeIndex)) + '%) scale(' + zIndex / halfSlidesLength + ')'; slide.style.zIndex = zIndex; } }, }, }); ``` 以上代码实现了一个基于Swiper的异形轮播图,通过CSS设置每个轮播项的位置以及过渡效果,通过JavaScript实现了轮播项的缩和层叠效果。同时,通过Swiper的API实现了轮播图的自动轮播和分页器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值