html图片分四面切割播,CSS3简易切割轮播图的实现代码

实现思路

首先创建一个父容器,用两个无序列表通过弹性布局将父容器分为两栏。

在li里面存放图片通过给左边的li {background: url('图片地址') no-repeat; background-size: 200% 100%;}给右边的li{background-position-x: -300(父容器宽度的一半)px;}来实现将图片分割成两栏。

给ul{ransform-style: preserve-3d; }属性来开启浏览器的3D显示。

用子绝父相来将li叠放到一起ul{position: relative;} li {position: absolute;}。

通过transform属性来设置li的旋转。

到这里可以添加.box:hover>ul { transition: all 5s;transform: rotateX(360deg); } 来看看效果。

最后添加两个按钮来让用户可以自己切换图片。

点击时只用改变ul的旋转角度

btn1.onclick = ()=>{

item++;

let r = item * 90;

letf.style.transform = 'rotateX(' + r + 'deg)';

letf.style.transition = 'all 1s';

right.style.transform = 'rotateX(' + r + 'deg)';

right.style.transition = 'all 1s .3s';

}

btn2.onclick = ()=>{

item--;

let r = item * 90;

letf.style.transform = 'rotateX(' + r + 'deg)';

letf.style.transition = 'all 1s';

right.style.transform = 'rotateX(' + r + 'deg)';

right.style.transition = 'all 1s .3s';

}

最后附上全部代码,希望对学习前端的你有所帮助

html代码

切割轮播图

上一页下一页

css 代码

*{

margin: 0;

padding: 0;

}

body{

perspective: 800px;

}

.box{

display: flex;

width: 600px;

height: 350px;

margin: 150px auto;

}

.box:hover ul li:nth-child(1){

transition: all 5s;

transform: rotateX(360deg);

}

ul{

flex: 1;

list-style: none;

padding: 0;

margin: 0;

transform-style: preserve-3d; /* 开启浏览器的3D显示 */

position: relative;

}

li{

width: 100%;

height: 100%;

position: absolute;

}

li:nth-child(1){

background: url('../images/9.jpg') no-repeat;

background-size: 200% 100%;

transform: translateZ(175px);

}

li:nth-child(2){

background: url('../images/10.jpg') no-repeat;

background-size: 200% 100%;

transform: rotateX(90deg) translateZ(175px);

}

li:nth-child(3){

background: url('../images/11.jpg') no-repeat;

background-size: 200% 100%;

transform: rotateX(180deg) translateZ(175px);

}

li:nth-child(4){

background: url('../images/12.jpg') no-repeat;

background-size: 200% 100%;

transform: rotateX(-90deg) translateZ(175px);

}

.right li{

background-position-x: -300px;

}

js代码

let item = 0;

let btn1 = document.getElementById('btn1');

let btn2 = document.getElementById('btn2');

let letf = document.querySelector('.letf');

let right = document.querySelector('.right')

btn1.onclick = ()=>{

item++;

let r = item * 90;

letf.style.transform = 'rotateX(' + r + 'deg)';

letf.style.transition = 'all 1s';

right.style.transform = 'rotateX(' + r + 'deg)';

right.style.transition = 'all 1s .3s';

}

btn2.onclick = ()=>{

item--;

let r = item * 90;

letf.style.transform = 'rotateX(' + r + 'deg)';

letf.style.transition = 'all 1s';

right.style.transform = 'rotateX(' + r + 'deg)';

right.style.transition = 'all 1s .3s';

}

到此这篇关于CSS3简易切割轮播图的实现代码的文章就介绍到这了,更多相关CSS3切割轮播图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值