[摘要]在学习css3的过程中,我们知道css3中新增的一些属性可以很容易就能够实现某些好看的效果,这篇文章将给大家介绍一个特别的效果—图片光影效果。什么是图片光影效果呢?我们有时候可以在网页中看到一张图片...
在学习css3的过程中,我们知道css3中新增的一些属性可以很容易就能够实现某些好看的效果,这篇文章将给大家介绍一个特别的效果—图片光影效果。什么是图片光影效果呢?我们有时候可以在网页中看到一张图片当你鼠标放到这张图片上的时候就会在图片上划过一道光影,这就是光影效果,感觉是不是非常的有趣,这就可以用css3来实现,话不多说,下面就直接来看正文。
首先我们要知道本篇文章中css3实现图片光影效果需要用到transition属性和transform属性。
下面我们简单看一下transition属性和transform属性这两个属性。
transition属性是一个简写属性,用于设置四个过渡属性:
transition-property:规定设置过渡效果的 CSS 属性的名称。
transition-duration :规定完成过渡效果需要多少秒或毫秒。
transition-timing-function:规定速度效果的速度曲线。
transition-delay:定义过渡效果何时开始。
transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
看完了这两个属性后,我们就来直接看css3图片光影实现的代码:
思路:设置一个透明层i,skewx在X轴上做了负25度的变形,背景颜色用的是CSS3的线性渐变linear-gradient,然后hover的时候,设置0.5s的动画时间。同时在 i 层使用 cursor:pointer,如果不设置这个的话,需要等透明层动画之后才能看得到 pointer 指针。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="">
.overimg {
position: relative;
display: block; /* overflow: hidden;*/
-webkit-box-shadow: 0 0 10px #FFF;
box-shadow: 0 0 10px #FFF; /* overflow: hidden;*/
}
.light {
cursor: pointer;
position: absolute;
left: -100px;
top: 0;
width: 180px;
height: 90px;
background-image: -webkit-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0));
background-image: -moz-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0));
background-image: -o-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0));
background-image: -ms-linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0));
background-image: linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0.5),rgba(255,255,255,0));
-webkit-transform: skewx(-25deg);
-moz-transform: skewx(-25deg);
-o-transform: skewx(-25deg);
-ms-transform: skewx(-25deg);
transform: skewx(-25deg);
}
.overimg:hover .light {
left: 180px;
-webkit-transition: 0.5s;
-moz-transition: 0.5s;
-o-transition: 0.5s;
-ms-transition: 0.5s;
transition: 0.5s;
}
}
</style>
</head>
<body>
<p class="overimg">
<a><img src="images/pandas.jpg" width="300px" height="150px"></a>
<i class="light"></i>
</p>
</body>
</html>