为什么我的没有效果?
来源:2-3 progress插件使用
昏睡红茶厘米
2020-05-30 12:01:19
直接下载老师的代码也是没有效果。就跟demo1的效果一样,没有progress的效果。是还要设置什么别的吗?
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui"> <title>swiper基础滑动</title> <link href="../js/swiper/idangerous.swiper2.7.6.css" rel="stylesheet"> <style> * { margin: 0; padding: 0; } html, body { width: 100%; height: 100%; } .swiper-container, .swiper-wrapper, .swiper-slide { width: 100%; height: 100%; } .swiper-slide img { width: 100%; height: 100%; } </style> </head> <body> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide"><img src="http://climg.mukewang.com/59f2f3c60001e51206000600.jpg"></div> <div class="swiper-slide"><img src="http://climg.mukewang.com/59f2f3dc0001512e06000533.jpg"></div> <div class="swiper-slide"><img src="http://climg.mukewang.com/59f2f3fb0001725305000707.jpg"></div> </div> </div> <script src="../js/jquery-3.5.1.min.js"></script> <script src="../js/swiper/idangerous.swiper2.7.6.min.js"></script> <script src="../js/swiper/idangerous.swiper.progress.min.js"></script> <script> var myswiper = new Swiper('.swiper-container', { progress: true, onProgressChange: function (swiper) { for (var i = 0; i < swiper.slides.length; i++) { var slide = swiper.slides[i]; var progress = slide.progress; swiper.setTransform(slide, 'translate3d(0px,0,' + (-Math.abs(progress * 1500)) + 'px)'); } }, onTouchStart: function (swiper) { for (var i = 0; i < swiper.slides.length; i++) { swiper.setTransition(swiper.slides[i], 0); } }, onSetWrapperTransition: function (swiper, speed) { for (var i = 0; i < swiper.slides.length; i++) { swiper.setTransition(swiper.slides[i], speed); } } }) for (var i = 0; i < myswiper.slides.length; i++) { myswiper.slides[i].style.zIndex = myswiper.slides.length - i; } </script> </body> </html>
2回答
同学你好,对于你的问题解答如下:
因为transform-style: preserve-3d; 该属性设置在父级元素中,它的子级元素具有3d效果。perspective: 1200px; 设置观察者到物体的距离。所以设置这两个属性后,js中通过translate3d改变元素位置时,会有一个3d的效果。
源码中只保留了最后一个例子的js代码,前面示例代码都被注释了,同学想要查看第二个demo的效果,可以打开js中这段注释,测试下效果即可。
同学的代码与老师的js代码不一样,所以实现的效果会有些差别,具体的可以参考源码对比下。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
昏睡红茶厘米
提问者
2020-05-30
.swiper-container {
perspective: 1200px;
}
.swiper-wrapper,
.swiper-slide {
transform-style: preserve-3d;
}
设置了这些后我的代码就有效果了,不过老师的例子依旧没效果orz
我不太懂perspective: 1200px;transform-style: preserve-3d;这两句是做什么的,为什么加上就有效果了。视频里老师演示的是只拷贝了js部分的代码就行了,但我也这么做发现不可以。
相似问题
回答 1
回答 3