为什么我的 CSS 过渡在鼠标退出时突然结束



我只是在测试一些CSS过渡(我是CSS初学者(。所有的过渡都很顺利。但是在其中一个过渡中,当鼠标悬停完成后,过渡会流畅地播放,一旦您退出鼠标,它就会突然结束。在所有其他情况下,鼠标悬停和鼠标退出都运行良好。

过渡以这种方式结束的原因是什么?如何解决?(修复:感谢@Edwin(。现在,请解释为什么它无法正常工作而没有更改。

jsbin:http://jsbin.com/oposof,http://jsbin.com/oposof/5(我担心第一个过渡"三角形"(。

  #container1 >  div.triangle {
     border-bottom: 80px solid red;
     border-left: 60px solid transparent; 
     border-right: 60px solid transparent;
      width: 0px;
      height: 0px;
    -webkit-transition: all 1.2s ease-in-out;
  }
  #container1 >  div.triangle:hover {
    border-top: 80px solid green;
    border-left: 60px solid transparent; 
    border-right: 60px solid transparent;
  }

  #container1 >  div.triangle:active {
    border-left: 80px solid blue; 
    border-right: 60px solid transparent;
  }

  #container2 > div.testt {
    color: red;
    -webkit-transition: all 1s ease-in-out;
  }
  #container2 > div.testt:hover {
    color:yellow;
  }
  #container3 >  div.circle {
    border-radius: 70px;
    width: 100px;
    height: 100px;
    background: red;
    -webkit-border-radius: 50px;
    -webkit-transition: all 1.2s ease-in-out;
  }
  #container3 >  div.circle:hover {
    -webkit-border-radius: 20px;
    -webkit-transform: rotate(-45deg);
  }

我用过-webkit-,所以上面的演示只能在 chrome 和 safari 上运行。-moz-添加 现在,您也可以在Mozilla上对其进行测试(希望在IE中也是如此(。 http://jsbin.com/oposof/5

似乎突然

是由于默认情况下它在顶部没有边框,然后在悬停时它突然在顶部有边框。因此,在mouseout中,它所做的不是过渡,而是隐藏顶部边框,因为没有初始值可以引用过渡。

试试这个:

#container1 >  div.triangle {
    border-bottom: 80px solid red;
    border-top: 0 solid green;
    border-left: 60px solid transparent; 
    border-right: 60px solid transparent;
    width: 0px;
    height: 0px;
   -webkit-transition: all 1.2s ease-in-out;
}

相关内容

  • 没有找到相关文章