0

我的问题是@-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);
    }
}

谢谢你。

4

2 回答 2

2

It's a display issue with the <span>. If you set it to display: block; it should work. See http://jsfiddle.net/ryanbrill/mdb7X/

于 2013-02-27T17:08:07.547 回答
0

几个快速点,

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

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

2 - 此外,此级别的动画和一些过渡只能应用于包含您想要动画的项目的包含元素,即 div、导航、页眉、部分、文章、页脚等。一种解决方案是使用 display: inline-blocks; 对齐方法并将各个部分放置在单独的容器中,这将要求第一个子元素具有 suedo 元素 ::before (以及第二个 :before 以支持一些较旧的浏览器)并且主容器具有 suedo 元素 :: after (;after) 强制正确对齐的理由。在“Codr0ps”网站上有几个关于如何实现这一目标的优质示例 - http://tympanus.net/codrops/

于 2013-09-21T20:13:49.750 回答