为什么@ -webkit-keyframes动画不起作用?

时间:2012-11-16 14:46:19

标签: html css html5 css3 css-animations

我的问题是@ -webkit-keyframes动画不起作用,我没有看到任何线索......所有其他部分都运行良好,包括背景颜色和字体颜色过渡。 这是HTML和CSS:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>test</title>
<link rel="stylesheet" href="test.css" />
</head>
<body id="body">

<nav>
    <ul id="nav">
        <li><a href="#" class="link"><div class="content"><span class="span">About</span></div></a></li>
        <li><a href="#" class="link"><div class="content"><span class="span">Skills</span></div></a></li>
        <li><a href="#" class="link"><div class="content"><span class="span">Works</span></div></a></li>
        <li><a href="#" class="link"><div class="content"><span class="span">Contact</span></div></a></li>
    </ul>
</nav><br />

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="test.js"></script>
<script type="text/javascript" src="jquery_ui.js"></script>
</body>

</html>

CSS:

#nav{
    list-style:none;
    margin:40px auto;
    padding:0;
    width: 820px;
}
#nav li{
    width: 200px;
    height: 300px;
    overflow: hidden;
    position: relative;
    float: left;
    background: #00D8CC;
    -webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.2);
    margin-right: 2px;
    -webkit-transition: all 300ms linear;
}

#nav li:last-child {
    margin-right: 0px;
}

#nav li a{
    display:block;
    text-align: center;
    position: relative;
    height: 100%;
    color: #333;
}

.content {
    position: absolute;
    left: 0px;
    width: 100%;
    height: 50%;
    top: 50%;
}

.span {
    font-size: 30px;
    opacity: 0.8;
    text-align: center;
    line-height: 40px;
    -webkit-transition: all 300ms linear;
}

#nav li:hover {
    background-color: #00AAAA;

}

#nav li:hover .span{
    color: green;
    -webkit-animation: move 300ms ease;
}

@-webkit-keyframes move { 
    from {
            -webkit-transform: translateX(-100%) rotate(-90deg);
    }
    to {
            -webkit-transform: translateX(0%) rotate(0deg);
    }
}

谢谢。

2 个答案:

答案 0 :(得分:2)

这是<span>的显示问题。如果将其设置为display: block;,它应该可以正常工作。见http://jsfiddle.net/ryanbrill/mdb7X/

答案 1 :(得分:0)

几点快点,

1 - nav和span都是元素而不是id或类

2 - 你没有@keyframes移动,或者转换所有属性来激活它加上你的调整是以毫秒为单位将导致一些新浏览器挂起,因为他们似乎都期望0.3s十进制值。

2 - 此外,此级别的动画和一些过渡只能应用于包含元素,即包含您希望设置动画的项目的div,nav,header,section,article,footer等。一种解决方案是使用display:inline-blocks;对齐方法和将单个部分放在单独的容器中,这将要求first-child具有suedo element :: before(以及第二个:before以支持一些旧的浏览器)和主容器具有suedo元素::之后(;之后)强制正确对齐的理由。有关如何在“Codr0ps”网站上实现此目标的几个高质量示例 - http://tympanus.net/codrops/