我只是在测试一些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;
}