html旋转相册,css3 旋转相册

e4513189096a

旋转图片.png

直接上代码,相信大家一看就懂

html

01.jpg

02.jpg

03.jpg

04.jpg

05.jpg

06.jpg

07.jpg

08.jpg

09.jpg

10.jpg

11.jpg

12.jpg

css代码

*{

margin: 0;

padding: 0;

}

#wrap{

perspective: 900px; /*在这里开启景深,因为box也需要转动*/

}

.box{

transform-style: preserve-3d;

width: 300px;

height: 200px;

margin: 200px auto;

position: relative;

animation: rotate 10s linear infinite;

/*backface-visibility: hidden;*/ /*开启了,后半圈会看不到,因为隐藏了背面*/

}

img{

width: 300px;

height: 200px;

position: absolute;

left: 0;

top: 0;

}

@keyframes rotate {

from{

/*rotateX(-15deg) 变成一个俯视的视角*/

transform:rotateX(-15deg) rotateY(0deg);

}

to{

transform:rotateX(-15deg) rotateY(360deg);

}

}

js代码

var oImgs = document.querySelectorAll("img");

//sin/cos/tan 里面只能写弧度,故要做转换

var ImgtranslateZ = oImgs[0].offsetWidth / 2 / Math.tan(360/oImgs.length/2 * Math.PI /180);

//这里提醒一点,要先绕Y轴转,再Z轴平移,z轴始终垂直于平面

oImgs.forEach(function (item,index,arr) {

item.style.transform = "rotateY(" +index * 360 / oImgs.length+ "deg)

translateZ("+ ImgtranslateZ +"px)" ;

})

代码打包

旋转相册

*{

margin: 0;

padding: 0;

}

#wrap{

perspective: 900px; /*在这里开启景深,因为box也需要转动*/

}

.box{

transform-style: preserve-3d;

width: 300px;

height: 200px;

margin: 200px auto;

position: relative;

animation: rotate 10s linear infinite;

/*backface-visibility: hidden;*/ /*开启了,后半圈会看不到,因为隐藏了背面*/

}

img{

width: 300px;

height: 200px;

position: absolute;

left: 0;

top: 0;

}

@keyframes rotate {

from{

/*rotateX(-15deg) 变成一个俯视的视角*/

transform:rotateX(-15deg) rotateY(0deg);

}

to{

transform:rotateX(-15deg) rotateY(360deg);

}

}

01.jpg

02.jpg

03.jpg

04.jpg

05.jpg

06.jpg

07.jpg

08.jpg

09.jpg

10.jpg

11.jpg

12.jpg

var oImgs = document.querySelectorAll("img");

//sin/cos/tan 里面只能写弧度,故要做转换

var ImgtranslateZ = oImgs[0].offsetWidth / 2 / Math.tan(360/oImgs.length/2 * Math.PI /180);

//这里提醒一点,要先绕Y轴转,再Z轴平移,z轴始终垂直于平面

oImgs.forEach(function (item,index,arr) {

item.style.transform = "rotateY(" +index * 360 / oImgs.length+ "deg) translateZ("+ ImgtranslateZ +"px)" ;

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值