【问题标题】:Links not displayed in IE10 when another element has CSS3 animation当另一个元素具有 CSS3 动画时,链接不显示在 IE10 中
【发布时间】:2013-08-22 17:25:18
【问题描述】:

我正在尝试使用 CSS3 动画创建标题,但遇到了问题。问题是菜单链接在加载时不显示在 IE10 中。但是,当我将鼠标随机移动到应该存在链接的区域上时,菜单项确实会显示出来。

我搜索了很多,但找不到根本原因。但是,我设法弄清楚这仅在 IE10 中发生,并且仅在启用动画时才会发生。

下面,我包含了两个 jsFiddle 版本。一种是没有正确显示菜单的动画属性。另一个是菜单不显示的动画。

With Animation | Without Animation

注意:

  1. Chrome 30、FireFox 23、Opera 15 和 Safari 没有问题 5.1.7
  2. 标题和副标题将包含从数据库中获取的多语言文本。因此我不想这样做 带有图像的动画。我也不是在寻找任何 JavaScript 或 jQuery 替代/变通方法。

HTML

<header id="header">
    <div id="banner" class="banner left">
        <div id="first_line">Heading</div>
        <div>Sub-heading</div>
    </div>
    <nav class="menu right">
        <ul>
            <li><a href="#">Link1</a>
            </li>
            <li><a href="#">Link2</a>
            </li>
            <li><a href="#">Link3</a>
            </li>
            <li><a href="#">Link4</a>
            </li>
            <li class="mselected">Link5</li>
            <li><a href="#">Link6</a>
            </li>
        </ul>
    </nav>
</header>

CSS

.left {
    float: left;
}
.right {
    float: right;
}
#header {
    background-color: black;
    color: white;
    font-size: 15px;
    height: 70px;
    padding-top: 20px;
    overflow: hidden;
}
.banner {
    cursor: default;
    letter-spacing: 1px;
    padding-left: 10px;
    -webkit-animation: entry 2s linear 2s 5 alternate;
    -moz-animation: entry 2s linear 2s 5 alternate;
    animation: entry 2s linear 2s 5 alternate; /* This seems to cause the problem */
}
@-webkit-keyframes entry {
    from {
        -webkit-transform: scale(0.5) rotateX(0deg);
    }
    25% {
        -webkit-transform: scale(0.625) rotateX(90deg);
    }
    75% {
        -webkit-transform: scale(0.875) rotateX(270deg);
    }
    to {
        -webkit-transform: scale(1) rotateX(360deg);
    }
}
@keyframes entry {
    from {
        transform: scale(0.5) rotateX(0deg);
    }
    25% {
        transform: scale(0.625) rotateX(90deg);
    }
    75% {
        transform: scale(0.875) rotateX(270deg);
    }
    to {
        transform: scale(1) rotateX(360deg);
    }
}
@-moz-keyframes entry {
    from {
        -moz-transform: scale(0.5) rotateX(0deg);
    }
    25% {
        -moz-transform: scale(0.625) rotateX(90deg);
    }
    75% {
        -moz-transform: scale(0.875) rotateX(270deg);
    }
    to {
        -moz-transform: scale(1) rotateX(360deg);
    }
}
.menu {
    padding-right: 10px;
    letter-spacing: 0.5px;
}
#first_line {
    font-size: 30px;
    line-height: 45px;
}
.menu ul {
    margin-top: 45px;
}
.menu li {
    list-style: none;
    display: inline;
    padding: 10px 10px 10px 10px;
    border: 1px solid black;
    -moz-border-radius: 5px;
    -webkit-border-radius: 5px;
    -khtml-border-radius: 5px;
    border-radius: 5px;
    background-clip: padding-box;
}
.menu li a {
    color: white;
}
.menu li:hover {
    background-color: white;
}
.menu li:hover a, .menu li a:hover {
    color: black;
}
.mselected {
    background-color: white;
    color: black;
}

【问题讨论】:

  • 在 Windows 7 x64 上的 IE 10.0.9200.16660(更新版本:10.0.08 KB2862772)中工作正常。

标签: css cross-browser internet-explorer-10 css-animations


【解决方案1】:

问题似乎是由于为动画设置的delay 引起的。如果我们消除延迟,它会按预期工作,并且链接会在页面加载时显示。 Fiddle

animation: entry 2s linear 5 alternate;

注意:这只是一种临时解决方案。如果我设法找出它不适用于动画延迟的原因,我会更新。

【讨论】:

  • 非常感谢。感谢您对此的帮助。我现在可以毫不拖延地生活......会给予支持,但我没有足够的声誉来做到这一点。我会等待一段时间,看看是否有其他答案,如果没有更好的答案,我会接受你的。
猜你喜欢
  • 2013-04-28
  • 2012-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 2017-02-04
  • 2013-10-09
  • 1970-01-01
相关资源
最近更新 更多