Internet Explorer中的CSS过渡闪烁

时间:2014-07-08 13:32:08

标签: html css internet-explorer css-transitions

我在Internet Explorer中遇到此代码的问题:

CSS:

.nav-fillpath a {
    width: 100px;
    height: 100px;
    position: absolute;
    display: block;
    bottom: 0%;
    left:0;
    right:0;
    color: #3e3e3e;
    margin-left:auto;
    margin-right:auto;
    outline: none;
    font-family: Arial;
    text-decoration: none;
    text-align: center;
    line-height: 1.4;
    z-index: 1000;
    -webkit-transform: translateY(0%);
    transform: translateY(0%);
}
.nav-fillpath a strong {
    color: #cd575b;
}

.nav-fillpath .icon-wrap {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.nav-fillpath a::before,
.nav-fillpath a::after,
.nav-fillpath .icon-wrap::before,
.nav-fillpath .icon-wrap::after {
    position: absolute;
    left: 50%;
    width: 2px;
    max-width: 2px;
    height: 50%;
    background: #3e3e3e;
    content: '';
    -webkit-transition: -webkit-transform 0.3s;
    transition: transform 0.3s;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.nav-fillpath .icon-wrap::before,
.nav-fillpath .icon-wrap::after {
    height: 0;
    opacity: 0;
    background: #cd575b;
}

.nav-fillpath a::before,
.nav-fillpath .icon-wrap::before {
    top: 50%;
    -webkit-transform: translateX(-50%) rotate(125deg);
    transform: translateX(-50%) rotate(125deg);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;
}

.nav-fillpath a::after,
.nav-fillpath .icon-wrap::after {
    top: 50%;
    -webkit-transform: translateX(-50%) rotate(-125deg);
    transform: translateX(-50%) rotate(-125deg);
    -webkit-transform-origin: 50% 0%;
    transform-origin: 50% 0%;

}

.nav-fillpath h3 {
    position: relative;
    margin: 0;
    color: #fff;
    text-transform: uppercase;
    font-weight: 300;
    font-size: 0.85em;
    text-align: center;
    opacity: 0;
    display: block;
    -webkit-transition: -webkit-transform 0.3s, opacity 0.3s;
    transition: transform 0.3s, opacity 0.3s;
}

.nav-fillpath a.next h3 {
    text-align: center;
    display: block;
    text-decoration: none;
}

.nav-fillpath a:hover .icon-wrap::before,
.nav-fillpath a:hover .icon-wrap::after {
    height: 50%;
}

.nav-fillpath a:hover::before,
.nav-fillpath a:hover .icon-wrap::before {
    -webkit-transform: translateX(-50%) rotate(135deg);
    transform: translateX(-50%) rotate(135deg);
}


.nav-fillpath a:hover::after,
.nav-fillpath a:hover .icon-wrap::after {
    -webkit-transform: translateX(-50%) rotate(-135deg);
    transform: translateX(-50%) rotate(-135deg);
}


.nav-fillpath a:hover h3 {
    opacity: 1;
    -webkit-transform: translateY(-100%) translateX(0%);
    transform: translateY(-100%) translateX(0%);
}

这是JSFiddle:

http://jsfiddle.net/74Hzu/

OK解决方案是删除display:block;从这里

.nav-fillpath .icon-wrap {
    position: relative;
    width: 100%;
    height: 100%;
}

这里是FIXED JSFiddle:

http://jsfiddle.net/74Hzu/4/

当我悬停nav-fillpath时,后续部分开始闪烁,但只有在Internet Explorer中,chrome工作正常。知道哪里可能有问题?我设置-webkit-backface-visibility:hidden; 背面 - 可见性:隐藏;在(之前和之后),但它也不起作用

2 个答案:

答案 0 :(得分:2)

为代码中的每个-ms添加-webkit

  • -webkit(适用于Webkit浏览器,Chrome和Safari)
  • -o(适用于Opera)
  • -moz(适用于Firefox)
  • -ms(适用于IE)

Demo

<强> Upate:

删除display:block;

后问题已解决

答案 1 :(得分:1)

对我来说,将backface-visibility(css属性)设置为visible就可以了。