现在的前端做的越来越炫酷了,各种特效让人眼花缭乱。
前几天逛网站的时候,看见有个照片墙的效果不错,就想着自己也做做看。
首先上图:
照片呈不规则的角度摆放,当鼠标放在照片上时,照片会放大;
鼠标离开照片时,照片回到原来的状态。
其实只要用CSS3的一些属性完全就可以实现这样的效果,无须一行js代码~~
代码实现:
html代码部分的代码,就是一个div里放上几张图片而已。
<div class="images">
<img class="pic pic1" src="images/photo/temo.jpg">
<img class="pic pic2" src="images/photo/p2.jpg">
<img class="pic pic3" src="images/photo/p3.jpg">
<img class="pic pic4" src="images/photo/p5.jpg">
<img class="pic pic5" src="images/photo/p4.jpg">
<img class="pic pic6" src="images/photo/p6.jpg">
<img class="pic pic7" src="images/photo/p7.jpg">
<img class="pic pic8" src="images/photo/8.jpg">
<img class="pic pic9" src="images/photo/9.jpg">
</div>
样式表中的代码
.images{
width: 960px;
margin: 60px 60px 10px 40px;
position: absolute;
}
.pic{
width: 160px;
}
.images img:hover{
box-shadow: 15px 15px 20px rgba(50,50,50,0.4);
transform:rotate(0deg) scale(2.20);
-webkit-transform:rotate(0deg) scale(1.20);
z-index: 1000;
}
.images img{
padding: 10px 10px 15px;
background: white;
border: 1px solid #ddd;
box-shadow: 2px 2px 3px rgba(50,50,50,0.4);
-webkit-transition: all 0.5s ease-in;
-moz-transition: all 0.5s ease-in;
-ms-transition: all 0.5s ease-in;
-o-transition: all 0.5s ease-in;
transition: all 0.5s ease-in;
position: absolute;
z-index: 1;
}
.pic1{
left: 400px;
top: 0;
transform:rotate(-5deg);
-webkit-transform:rotate(-5deg);
}
.pic2{
left: 200px;
top: 10px;
transform:rotate(-20deg);
-webkit-transform:rotate(-20deg);
}
.pic3{
top: 220px;
right: 80px;
transform:rotate(5deg);
-webkit-transform:rotate(5deg);
}
.pic4{
top: 100px;
left: 300px;
transform:rotate(-10deg);
-webkit-transform:rotate(-10deg);
}
.pic5{
top: 20px;
right: 150px;
transform:rotate(-10deg);
-webkit-transform:rotate(-10deg);
}
.pic6{
left: 10px;
top: 0;
transform:rotate(10deg);
-webkit-transform:rotate(10deg);
}
.pic7{
left: 850px;
top: 0;
transform:rotate(20deg);
-webkit-transform:rotate(20deg);
}
.pic8{
bottom: -20px;
top: 250px;
transform:rotate(5deg);
-webkit-transform:rotate(5deg);
}
.pic9{
left: 550px;
top: 90px;
transform:rotate(15deg);
-webkit-transform:rotate(15deg);
}
可以看到,主要设置position属性为absolute,然后使用left,top,right,bottom来设置图片的摆放位置;使用 transform:rotate(15deg)来设置图片的旋转角度。
.images img:hover{
box-shadow: 15px 15px 20px rgba(50,50,50,0.4);
transform:rotate(0deg) scale(2.20);
-webkit-transform:rotate(0deg) scale(2.20);
z-index: 1000;
}
在hover鼠标悬浮在图片上的事件中,设置transform:rotate(0deg) scale(2.20)图片缩放为原来的2.2倍,然后设置z-index 防止被其他图片遮盖即可。
就是这么简单!关于缩放的倍数和旋转的角度可以自行修改。图片的位置也可以自己调整。