css3画布做百叶窗
导读:百叶窗的动态效果往往会给人一种清新舒适的感觉,而用CSS3的画布来实现百叶窗的效果则会更富有创意。在CSS3中,我们可以使用“clip”属性来实现类似百叶窗般的效果。.blinds {display: flex;justify-conten...
百叶窗的动态效果往往会给人一种清新舒适的感觉,而用CSS3的画布来实现百叶窗的效果则会更富有创意。在CSS3中,我们可以使用“clip”属性来实现类似百叶窗般的效果。
.blinds {
display: flex;
justify-content: space-between;
width: 100%;
height: 300px;
overflow: hidden;
position: relative;
perspective: 500px;
transform-style: preserve-3d;
}
.blinds >
div {
position: absolute;
width: 100%;
height: 100%;
transform-style: preserve-3d;
transition: transform 0.8s ease;
backface-visibility: hidden;
}
.blinds >
div >
div {
position: absolute;
width: 100%;
height: 10%;
background-color: #fff;
transform-style: preserve-3d;
}
.blinds >
div:nth-child(1) {
transform: rotateY(0deg) translateZ(0px);
}
.blinds >
div:nth-child(2) {
transform: rotateY(45deg) translateZ(-76px);
}
.blinds >
div:nth-child(3) {
transform: rotateY(90deg) translateZ(-152px);
}
.blinds >
div:nth-child(4) {
transform: rotateY(135deg) translateZ(-76px);
}
.blinds >
div:nth-child(5) {
transform: rotateY(180deg) translateZ(0px);
}
.blinds >
div:nth-child(6) {
transform: rotateY(-135deg) translateZ(-76px);
}
.blinds >
div:nth-child(7) {
transform: rotateY(-90deg) translateZ(-152px);
}
.blinds >
div:nth-child(8) {
transform: rotateY(-45deg) translateZ(-76px);
}
.blinds >
div:hover {
z-index: 5;
transform: rotateY(0deg) translateZ(0px);
}
.blinds >
div:hover ~ div {
transform: rotateY(0deg) translateZ(-20px);
}
.blinds >
div:hover >
div {
height: 100%;
transform: translateY(0px) translateZ(40px);
}
以上代码将会产生一个宽度为100%,高度为300px,八个百叶窗那样的div元素,每个子元素内部都包含有一个高10%的div元素以及使用 transform 使页面呈现3D效果。当鼠标悬浮于任意一个百叶窗上时,它将会呈现全屏显示并且其他的百叶窗都会稍微向后移动。
通过这样的方式,我们可以使用 CSS3 的画布实现一个漂亮的百叶窗效果,大幅减少了需要使用JavaScript的可能,提升了页面渲染速度,同时还能够实现更为创新的设计效果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: css3画布做百叶窗
本文地址: https://pptw.com/jishu/318631.html
