CSS Transition,它是如何工作的?

时间:2017-03-23 08:24:31

标签: css

我有一个简单的代码,具有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;

请你解释一下:

  1. 为什么这部分导致左右动画? (显然"所有"属性)

    transition: all 0.2s ease;
    
  2. 如何更改它以进行简单淡化而不是左/右移动?我必须使用jQuery吗?

  3. 由于 克里斯

2 个答案:

答案 0 :(得分:2)

  1. 从左到右是因为位置 .item:hover .overlay.item .overlay都是'左:0;'如果您将两者都改为'右:0;'你从右到左得到动画

  2. 淡入淡出效果不需要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;
}

Updated codepen demo