我有一个简单的代码,具有CSS过渡和图像悬停效果。 Codepen Demo
background-color: rgba(0, 0, 0, 0.22);
-webkit-transition: all 0.2s ease;
-moz-transition: all 0.2s ease-in;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease;
visibility:hidden;
overflow:hidden;
请你解释一下:
为什么这部分导致左右动画? (显然"所有"属性)
transition: all 0.2s ease;
如何更改它以进行简单淡化而不是左/右移动?我必须使用jQuery吗?
由于 克里斯
答案 0 :(得分:2)
从左到右是因为位置
.item:hover .overlay
和.item .overlay
都是'左:0;'如果您将两者都改为'右:0;'你从右到左得到动画
淡入淡出效果不需要Jquery,您可以在.item .overlay
上添加两个css属性(不透明度)不透明度0,在.item:hover .overlay
上添加不透明度
答案 1 :(得分:2)
将您的CSS
更改为以下内容:
.item .overlay {
position: absolute;
left: 0%;
top:0;
width: 0%;
height: 100%;
opacity:0;
background-color: rgba(0, 0, 0, 0.22);
-webkit-transition: opacity .3s ease-in-out;
-moz-transition: opacity .3s ease-in-out;
-o-transition: opacity .3s ease-in-out;
transition: opacity .3s ease-in-out;
overflow:hidden;
}
悬停
.item:hover .overlay {
top: 0;
left: 0;
visibility: visible;
width: 100%;
height: 100%;
opacity: 1;
}