今天,没错又是今天,今天做的事情还真是多呢~还修了洗衣机,貌似除了写代码不行,样样都行了呢~
好了,言归正传。今天在浏览一个网页时,鼠标滑过它的图片,出现了一种我感觉很酷炫的效果。像这样:
自己感受下~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
div {
position: relative;
500px;
height: 500px;
line-height: 500px;
text-align: center;
background: rgba(0, 0, 0, .8);
overflow: hidden;
}
p {
display: inline-block;
line-height: initial;
/*元素垂直居中*/
color: #fff;
}
p:before {
content: "";
position: absolute;
left: -50%;
top: 48%;
display: block;
margin: 0;
height: 0%;
200%;
transform: rotate(-55deg);
background: rgba(0, 0, 0, .5);
transition: 0.5s;
z-index: 1;
}
div:hover p:before {
position: absolute;
left: -50%;
top: -80%;
height: 300%;
200%;
}
</style>
</head>
<body>
<div>
<p>我是小可爱</p>
</div>
</body>
</html>
怎么样,有没有觉得很有趣~
原网页上的代码没有发现它全部的实现原理。
上边这个是我根据它的部分自己添加的,所以不知道是不是最优的方法,但效果是一样一样的~
总结起来就是:
1.插入遮罩层,设置它的高度或者宽度为0%(根据旋转角度与实现效果自定),定位到你想要的位置上给他旋转一个角度(可以根据角度实现不同方向的切换,如上下,左右啦。还可以通过组合实现旋转什么,就不一一列举了)。
2.然后,就是设置当鼠标滑过时,让它可以填满你得整个你想要覆盖的元素,最好超过(设置个父元素overflow:hidden),这样比较保险。
3.解决跨浏览器兼容,毕竟是CSS3(我比较懒,并没有设置)。友情提示,这里边主要是transition和transform,-o- -webit- -moz-。
怎么样,是不是很简单~赶紧试试一下子去吧,通过你的想象力,多搞点儿其他效果出来,加油哦,骚年~