/* CSS used here will be applied after bootstrap.css */
body{
background-color:yellow;
}
img{
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
}
img:hover{
-webkit-filter:blur(5px);
}
<img src="https://i.stack.imgur.com/K0jNI.png">
当你将鼠标悬停在图像上时,图像的边界会闪烁一段时间,然后再稳定下来。。有办法解决这个问题吗?
当我将鼠标悬停在图像的中间时,如何使文本显示在图像的中部?
编辑:这在Chrome浏览器中看起来很棒
我认为在使用webkit blur时,不完全可能获得超级干净的过渡。我以前使用它时遇到过很多渲染问题和小故障。当在很多元素上使用时,它也会占用资源。我的建议是将你的放松改为线性,只针对模糊。这应该会收紧一点。
img{
-webkit-transition: -webkit-filter 0.5s linear;
-moz-transition: -webkit-filter 0.5s linear;
-o-transition: -webkit-filter 0.5s linear;
-ms-transition: -webkit-filter 0.5s linear;
transition: -webkit-filter 0.5s linear;
}
至于文本淡入。您需要添加一个元素,该元素最初为opacity:0;
,但在父块悬停时更改为opacity:1;
。初始HTML更改为:
<div class='block'>
<img src="https://www.nasa.gov/sites/default/files/styles/image_card_4x3_ratio/public/thumbnails/image/leisa_christmas_false_color.png?itok=Jxf0IlS4">
<span>Hey there</span>
</div>
以及新的CSS
/* CSS used here will be applied after bootstrap.css */
body {
background-color: yellow;
}
img {
-webkit-transition: -webkit-filter 0.5s linear;
transition: -webkit-filter 0.5s linear;
}
.block {
position: relative;
width: 400px;
}
.block img {
width: 100%;
}
.block span {
opacity: 0;
-webkit-transition: all .3s;
transition: all .3s;
color: white;
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
text-align: center;
left: 0;
right: 0;
}
.block:hover > span {
opacity: 1;
}
img:hover {
-webkit-filter: blur(4px);
}
示例
http://codepen.io/jcoulterdesign/pen/58d613e80e4a768cc9e54aa1e7aaa0af