CSS3悬停图片遮罩层动画特效

CSS3悬停图片遮罩层动画特效

这是一款css3 transform属性制作鼠标悬停图片透明遮罩层旋转弹出浮动文字特效。

使用方法
在页面引入以下CSS3样式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<style type="text/css">
body {
    padding: 0;
    margin: 0;
}
 
.box {
    overflow: hidden;/*超出部分不显示,同时还可以清楚浮动的效果*/
    border: 1px solid #ccc;
   width: 630px;
    margin: 100px auto;
}
 
ul {
    list-style: none;/*去掉li的小圆点*/
    padding: 0;/*去掉浏览器自带的边距和填充*/
    font-size: 0;          
}
 
.box ul li {
    position: relative;/*相对定位*/
    float: left;/*左浮动:让元素飘起来*/
    width: 200px;
    height: 200px;
    margin: 5px;
    background: #fff;
   overflow: hidden;
    background: url(img/1.jpg) center/cover;/*背景    center/cover是居中/自适应*/
}
 
.box ul li:nth-child(2) {/*css选择器:选择ul中第二个li */
    background: url(img/2.jpg) center/cover;/*改变背景*/
}
 
.box ul li:nth-child(3) {
    background: url(img/3.jpg) center/cover;
}
 
.box ul li:nth-child(4) {
    background: url(img/4.jpg) center/cover;
}
 
.box ul li:nth-child(5) {
    background: url(img/5.jpg) center/cover;
}
 
.box ul li:nth-child(6) {
    background: url(img/6.jpg) center/cover;
}
/*在","这里设置before和after的相同属性*/
.box ul li::before,li::after {/*伪元素:在li前面添加内容*/
    content: "";/*添加的内容*/
    position: absolute;/*绝对定位:在这里可以使before,after设置宽高*/
    width: 100%;
    height: 100%;
    background: rgba(255, 200, 200, 0.5);
    transition: 0.7s;
}
/*然后在设置不同的属性,可以减少代码*/
.box ul li::before {
    transform: rotate(55deg) translateX(-320px) scale(1.8);
    /*变换:旋转(角度)  x轴位移(偏移量) 缩放(1.8倍)*/
}
 
.box ul li::after {
    transform: rotate(55deg) translateX(320px) scale(1.8);
}
 
.box ul li:hover::before {
    transform: rotate(55deg) translateX(-150px) scale(1.8);
}
 
.box ul li:hover::after {
    transform: rotate(55deg) translateX(150px) scale(1.8);
}
 
.box ul li div {
    z-index: 2;/*改变div的层级使其上移两层*/
    overflow: hidden;
    position: absolute;/*绝对定位*/
    top: 40px;/*定位:距离顶部40px*/
    color: #fff;
   width: 200px;
    height: 0;
    background: rgba(0, 0, 0, 0.5);
    text-align: center;
    transform: rotate(55deg);
    transition: 0.7s;
}
/*:hover放在里后面而不是div后的原因:鼠标height: 0;高度为0,鼠标没有能够经过div,就不能触发:hover事件*/
.box ul li:hover div {
    height: 120px;
    transform: rotate(0);
}
 
.box ul li div h3 {
    margin: 0;
    border-bottom: 2px solid #fff;
   font-size: 24px;
    line-height: 54px;
}
 
.box ul li div p {
    font-size: 16px;
    margin: 5px;
    line-height: 24px;
}
</style>

文件信息:

    2

    发表评论