.calendar { position: relative; width: 600px; height: 400px; } .front, .back { position: absolute; top: 0; left: 0; width: 100%; height: 100%; backface-visibility: hidden; /* 设置翻转效果 */ transform-style: preserve-3d; transition: transform 1s; } .front { z-index: 2; transform-origin: 0% 50%; } .back { transform: rotateY(-180deg); z-index: 1; transform-origin: 100% 50%; } .calendar:hover .front { transform: rotateY(180deg); } .calendar:hover .back { transform: rotateY(0); }
上述代码中,首先创建一个.calendar容器,然后定义两个子元素:.front和.back。.front表示日历的前面,.back表示日历的背面。接着,为这两个子元素分别设置好属性,让它们可以被翻转。
随后是关键的部分,通过:hover伪类选择器触发翻转效果。当鼠标移动到.calendar上时,.front就会沿Y轴旋转180度,同时.back根据此时.front的位置进行旋转0度或-180度。这种互动的设计方式吸引了大量用户的注意力。
在实际应用中,可以根据各自的需求进行适当的修改。例如可以添加更多的元素,或者改变动画的延时时间和效果。同时,为了兼容性和性能的考虑,推荐使用硬件渲染 CSS3 动画。