实现的3d轮播图

1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6     <style>
  7         *{
  8             padding: 0;
  9             margin: 0;
 10         }
 11         .stage{
 12             display: flex;
 13
 14             perspective: 1500px;
 15         }
 16         .void{
 17             clear: both;
 18         }
 19         .container{
 20
 21             width: 500px;
 22             height: 400px;
 23             /*通过改变height也可以改变是俯视还是仰视效果*/
 24
 25             margin: 0 auto;
 26             transform-style: preserve-3d;
 27         }
 28         .container img{
 29
 30             margin: auto;
 31             width: 500px;
 32             height: 200px;
 33             position: absolute;
 34             box-shadow: grey 20px;
 35
 36         }
 37         /*
 38
 39         img:nth-child(1){
 40
 41             transform: rotateY(0deg) translateZ(280px)   translateX(0px);
 42         translateY(0px);;
 43         }
 44         img:nth-child(2){
 45             transform: rotateY(60deg) translateZ(280px);
 46         }
 47         img:nth-child(3){
 48             transform: rotateY(120deg) translateZ(280px);
 49         }
 50         img:nth-child(4){
 51             transform: rotateY(180deg) translateZ(280px);
 52         }
 53         img:nth-child(5){
 54             transform: rotateY(240deg) translateZ(280px);
 55         }
 56         img:nth-child(6){
 57             transform: rotateY(300deg) translateZ(280px);
 58         }
 59         */
 60
 61     </style>
 62 </head>
 63 <body>
 64 <div class="stage">
 65     <div class="container">
 66         <img src="相框之拼图布局/imgs/Desert.jpg" >
 67         <img src="相框之拼图布局/imgs/Lighthouse.jpg">
 68         <img src="相框之拼图布局/imgs/Jellyfish.jpg">
 69         <img src="相框之拼图布局/imgs/Koala.jpg">
 70         <img src="相框之拼图布局/imgs/Tulips.jpg">
 71         <img src="相框之拼图布局/imgs/Penguins.jpg">
 72         <div class="void"></div>
 73
 74     </div>
 75 </div>
 76 <input type="button" id="button" value="点击一下">
 77 <script type="text/javascript" src="jquery-1.12.0.min.js"></script>
 78 <script>
 79     $(function(){
 80         var imgs=document.getElementsByTagName("img");
 81         var order=0;
 82         function move() {
 83             //对于每一个img元素都发生变化
 84             for (var i = 0; i < imgs.length; i++) {
 85                 (function(index){
 86                     imgs[index].cur = 60 * (index + order - 1);
 87                     imgs[index].target = 60 * (index + order);
 88                     imgs[index].timer = setInterval(function () {
 89                         imgs[index].speed = (imgs[index].target - imgs[index].cur) / 1000;
 90
 91                         imgs[index].speed = imgs[index].speed > 0 ? Math.ceil(imgs[index].speed) : Math.floor(imgs[index].speed);
 92
 93                         if (imgs[index].cur + imgs[index].speed == imgs[index].target) {
 94                             clearInterval(imgs[index].timer);
 95                         } else {
 96                             imgs[index].cur = imgs[index].cur + imgs[index].speed;
 97                             imgs[index].style.transform = "rotateY(" +(imgs[index].cur + imgs[index].speed) + "deg)  translateZ(500px)  translateY(200px)";
 98                         }
 99                     }, 10);
100                 })(i);
101             }
102             order++;
103         }
104         move();
105         setInterval(move,4000);
106     })
107 </script>
108 </body>
109 </html>

笔记:

1,解决for循环没有块级作用域的问题:

(1)使用匿名函数,传递参数

(2)使用ES6中的let,注意这儿要考虑ES6中对于浏览器的兼容性

2,如何实现3d效果

张鑫旭关于CSS 3d效果的博客

时间: 2024-11-09 09:24:35

实现的3d轮播图的相关文章

3d轮播图的效果实现

最近工程比较松,所以自己研究了一下3d轮播图的实现原理,其实说白了也不是很难就是在x,y,z轴上的平移和整个平面的旋转变换达到的效果, 下面是实现代码 html部分 <div class="stage"> <div class="contains"> <div style="transform: rotateY(0deg) translateZ(400px);">关于我</div> <div

Web全栈之路 1.CSS3中3D立方体以及3D轮播图

1.3D坐标系 3D坐标可以用左手来模拟,其中大拇指方向默认是X轴正方向,食指方向是Y轴正方向,中指方向是Z轴正方向.注意:当设置transform:rotateX(90deg)时,相当于将X轴转动90°,此时Z轴正方向向上,所以设置transform:translateZ(150px)时,就产生了3D立方体的上面,具体原理可以通过chrome浏览器审查元素来调试. 2.3D视图 transform-style:flat(默认,二维效果) / preserve-3d(三维效果).设置一个元素的t

featureCarousel.js 3d轮播图插件

jQuery Feature Carousel 插件是国外的一比较优秀的旋转木马图片插件. 点击这里进入原文. 插件特点: 1.处理div的3d旋转木马效果. 2.支持一个中心,2个侧面的功能 3.中心区域可点击 4.显示隐藏文本功能(可以使用css显示在图片的任何位置) 5.可以修改速度,效果,等很多的参数. 6.支持 Chrome,FireFox,Safari和IE6 +浏览器. 7.需要 jquery v1.3+ 8.支持图片预加载 怎么使用: 1.引入jQuery v1.3+和 caro

CSS3动画结合js实现3D轮播

昨天晚上有个同行提出要做一个旋转式的3D轮播图(下面统称banner图).我就为了帮他看了一下相关的技术贴发现符合要求的很少,所以只能自己去动手写了.看到有人写了CSS3立体旋转动画的博客,我就想把这个动画拆分成几个模块来做一个banner效果可不可以?最后自己动手写了一下还是可以的.不过这个banner效果还是存在一些bug,因为不是急用所以我也没有修复.以后有空我会修复的. html部分代码 <div class="container"> <div class=&

css3实现3D切割轮播图案例

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>CSS3 3D切割轮播图</title> <style> body { margin: 0; padding: 0; } ul { margin: 0; padding: 0; list-style: none; height: 100%; wi

带锁的3D切割轮播图

3D切割轮播图. 加入锁,限制点击太快次数 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> body{ margin: 0; padding: 0; } .view{ width: 560px; height: 300px; border: 1px solid #

CSS3,3D效果轮播图

---恢复内容开始--- 大家还记得我昨天的3D拖拽立方体吗??我昨天还说过css还可以做轮播图,所以咱们今天就写一下,css的轮播图吧! ....这个轮播图主要是用CSS3里的transform的旋转属性来完成3D效果的,然后配合原生js的显示隐藏,达到了3D旋转轮播图的效果: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/ht

jquery 实现3d切割轮播图

总结: 1.布局时4张图片分别为一个立体长方体的4个侧面,屏幕为该长方体的几何中心. 2.注意点击左按钮,显示上一张图片,沿X轴旋转的是 90deg,  右按钮,则为 90deg   3.切割效果通过li过渡延时来实现,通过节流阀控制过渡完成的时间点,也就是下次点击事件可以触发的时间点.  效果图:       1.html: <!--3d立体轮播图--><section class="box"> <ul class="imageBox"

10个免费的响应式jQuery Carousel 轮播图插件

jQuery Carousel 轮播图插件可以给网站创建华丽的动画效果,这里列出的10个jQuery Carousel 轮播图插件都是响应式的,并且可以免费使用. 1. ItemSlide.js 简单的触摸式Carousel 轮播图插件,提供多种样式的旋转动画,如向上滑动,基于全屏的触摸滑动,左右滑动等. 2. Liquid 每当Liquid 容器的大小改变时,都会重新调整列表中的项目数,以适应新的宽度. 3. jCarousel jCarousel 是一个用来控制水平或垂直方向上列表项的jQu