用css3做一个鼠标移动视差图片倾斜特效
时间: 2024-06-03 20:08:06 浏览: 180
首先,需要准备一张背景图片,并将其设置为页面背景。
然后,创建一个容器元素,用于包含需要倾斜的图片。
接着,使用CSS3的transform属性对该容器元素进行倾斜变换。可以使用rotateX()或rotateY()函数来实现。
最后,使用CSS3的hover伪类选择器,对鼠标移动事件进行响应,通过改变容器元素的transform属性值,实现视差效果。
以下是示例代码:
HTML:
```
<body>
<div class="container">
<img src="image.jpg" alt="image">
</div>
</body>
```
CSS:
```
body {
background-image: url(background.jpg);
background-size: cover;
background-position: center;
}
.container {
width: 300px;
height: 300px;
margin: 50px auto;
perspective: 1000px;
transform-style: preserve-3d;
transition: transform 0.5s ease-out;
}
.container:hover {
transform: rotateY(10deg) rotateX(-10deg);
}
img {
width: 100%;
height: 100%;
object-fit: cover;
transform: translateZ(150px);
}
```
解释一下代码:
1. 设置页面背景为一张背景图片,使用background-image属性。
2. 创建一个宽高为300px的容器元素,并将其居中对齐。使用perspective属性为容器元素设置透视距离,使其有3D效果。使用transform-style属性设置元素的transform属性应用于其子元素。使用transition属性为容器元素的transform属性设置动画效果。
3. 使用:hover伪类选择器,对容器元素鼠标移动事件进行响应。使用rotateY()和rotateX()函数改变容器元素的transform属性值,实现倾斜效果。
4. 在容器元素内部添加一个img元素,并将其设置为100%宽高的图片,使用object-fit属性使图片填充整个容器元素。使用translateZ()函数将图片推向远离用户的位置,使其在3D空间中呈现出合适的位置。
效果如下图所示:
![视差图片倾斜特效](https://cdn.jsdelivr.net/gh/1071942338/picgo-repo/img/20210918165954.png)
阅读全文