2

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

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

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

带动画| 没有动画

笔记:

  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;
}
4

1 回答 1

0

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

animation: entry 2s linear 5 alternate;

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

于 2013-08-22T13:25:40.737 回答