太原适合网站设计地址,网页设计培训哪家机构好,案例学习网站建设方案,wordpress 手机短信效果演示
这段HTML与CSS代码创建了一个包含10张卡片的3D旋转效果#xff0c;每张卡片都有自己的边框颜色和图片。通过CSS的3D变换和动画#xff0c;实现了一个动态的旋转展示效果
HTML
div classwrapperdiv classinner style-…效果演示
这段HTML与CSS代码创建了一个包含10张卡片的3D旋转效果每张卡片都有自己的边框颜色和图片。通过CSS的3D变换和动画实现了一个动态的旋转展示效果
HTML
div classwrapperdiv classinner style--quantity: 10;div classcard style--index: 0;--color-card: 142, 249, 252;div classimgimg src../../static/3.jpg alt/div/divdiv classcard style--index: 1;--color-card: 142, 252, 204;div classimgimg src../../static/4.jpg alt/div/divdiv classcard style--index: 2;--color-card: 142, 252, 157;div classimgimg src../../static/5.jpg alt/div/divdiv classcard style--index: 3;--color-card: 215, 252, 142;div classimgimg src../../static/3.jpg alt/div/divdiv classcard style--index: 4;--color-card: 252, 252, 142;div classimgimg src../../static/4.jpg alt/div/divdiv classcard style--index: 5;--color-card: 252, 208, 142;div classimgimg src../../static/5.jpg alt/div/divdiv classcard style--index: 6;--color-card: 252, 142, 142;div classimgimg src../../static/4.jpg alt/div/divdiv classcard style--index: 7;--color-card: 252, 142, 239;div classimgimg src../../static/5.jpg alt/div/divdiv classcard style--index: 8;--color-card: 204, 142, 252;div classimgimg src../../static/3.jpg alt/div/divdiv classcard style--index: 9;--color-card: 142, 202, 252;div classimgimg src../../static/4.jpg alt/div/div/div
/div.wrapper最外层的容器用于包裹整个3D效果。.inner内部容器用于包裹所有的卡片并且设置了–quantity自定义属性这个值表示卡片的总数用于计算每个卡片的旋转角度。.card单个卡片的容器每个卡片都有一个–index属性表示卡片的索引用于计算旋转角度以及–color-card属性表示卡片的边框颜色。.img图片容器用于包裹img标签。img图片元素用于显示卡片上的图片。
CSS
.wrapper {width: 100%;height: 100%;position: relative;text-align: center;display: flex;align-items: center;justify-content: center;overflow: hidden;
}
.inner {--w: 150px;--h: 200px;--translateZ: calc((var(--w) var(--h)) 0px);--rotateX: -15deg;--perspective: 1000px;position: absolute;width: var(--w);height: var(--h);top: 25%;left: calc(50% - (var(--w) / 2) - 2.5px);z-index: 2;transform-style: preserve-3d;transform: perspective(var(--perspective));animation: rotating 20s linear infinite;
}keyframes rotating {from {transform: perspective(var(--perspective)) rotateX(var(--rotateX)) rotateY(0);}to {transform: perspective(var(--perspective)) rotateX(var(--rotateX)) rotateY(1turn);}
}
.card {position: absolute;border: 2px solid rgba(var(--color-card));border-radius: 12px;overflow: hidden;inset: 0;transform: rotateY(calc((360deg / var(--quantity)) * var(--index))) translateZ(var(--translateZ));
}
.img {width: 100%;height: 100%;object-fit: cover;background: #0000 radial-gradient(circle,rgba(var(--color-card), 0.2) 0%,rgba(var(--color-card), 0.6) 80%,rgba(var(--color-card), 0.9) 100%);
}
.img img {width: 100%;height: 100%;
}.wrapper设置为相对定位并且使其充满整个视口viewport居中显示内容并且隐藏溢出的内容。.inner设置为绝对定位并且定义了一些自定义属性用于计算卡片的宽度、高度、Z轴的平移距离、X轴的旋转角度和透视效果。它还设置了transform-style为preserve-3d这是实现3D效果的关键属性。此外它还定义了一个无限循环的rotating动画。keyframes rotating定义了一个名为rotating的关键帧动画使.inner容器围绕Y轴旋转。.card设置为绝对定位并且使用rotateY和translateZ变换来实现卡片的3D旋转效果。每个卡片的旋转角度由–index和–quantity属性计算得出。.img设置图片容器的宽高、对象适应模式和背景渐变效果。.img img设置图片的宽高以填满容器。