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

の表示の問題<span>です。あなたがそれに設定した場合、display: block;それは動作するはずです。http://jsfiddle.net/ryanbrill/mdb7X/を参照してください

于 2013-02-27T17:08:07.547 に答える
0

いくつかの簡単なポイント、

1 - nav と span は両方とも id またはクラスではない要素です

2 - @keyframes の移動がないか、すべての属性をアクティブ化するためのトランジションに加えて、ミリ秒単位のタイミングにより、一部の新しいブラウザーがハングする原因となります。

2 - さらに、このレベルのアニメーションと一部のトランジションは、アニメーション化するアイテムを含む div、nav、ヘッダー、セクション、記事、フッターなどの要素にのみ適用できます。1 つの解決策は、display: inline-blocks; を使用することです。個々のセクションを個別のコンテナーに配置する方法を調整します。これには、最初の子に suedo 要素 ::before (およびいくつかの古いブラウザーをサポートするための 2 番目の :before) が必要であり、プライマリ コンテナーに :: の suedo 要素が必要です。 after (;after) を使用して、正しい位置合わせの正当化を強制します。「Codr0ps」サイトには、これを実現する方法の質の高い例がいくつかあります - http://tympanus.net/codrops/

于 2013-09-21T20:13:49.750 に答える