使用css的旋转元素的chrome动画宽度问题给出了奇怪的三角形

时间:2016-01-19 20:23:48

标签: css css3 google-chrome css-transitions

当我尝试为旋转元素内的绝对定位元素的宽度设置动画时,它会留下奇怪的三角形。像这样: enter image description here

它们每次都不同,它只发生在chrome中。它适用于Firefox和Safari。

body,html{
    padding:0;
    margin:0;
    height:100%;
    width:100%;
    overflow: hidden;
}
.container{
    width: 200%;
    height: 200%;
     -ms-transform: rotate(45deg); /* IE 9 */
    -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */
    transform: rotate(45deg);
    margin-left:-50vw;
    margin-top:-50vh;
}
.stripe-container{
    position:absolute;
    top:0;
    left:0;
    width: 100%;
    height: 100%;
     -ms-transform: rotate(-45deg); /* IE 9 */
    -webkit-transform: rotate(-45deg); /* Chrome, Safari, Opera */
    transform: rotate(-45deg);
}
.stripe-background{
    position: absolute;
    top:0;
    left:0;
    width: 0;
    height: 100%;
    background-color: #fff;
    webkit-transition: width 900ms ease-out;
    -moz-transition: width 900ms ease-out;
    -o-transition: width 900ms ease-out;
    transition: width 900ms ease-out;
}
.stripe:hover .stripe-background{
    width: 100%;
    webkit-transition: width 900ms ease-out;
    -moz-transition: width 900ms ease-out;
    -o-transition: width 900ms ease-out;
    transition: width 900ms ease-out;
}
.stripe{
    height: 20%;
    position: relative;
}

Link to JSFiddle

1 个答案:

答案 0 :(得分:0)

最后通过在背景元素上设置backface-visibility: hidden;来解决这个问题。