0

有这个 CSS3 代码:

#box1
    {
    position: relative;
    width: 300px;
    border: 1px solid black;
    box-shadow:  -3px 8px 34px  #808080;
    border-radius: 20px;
    box-shadow: -8px 5px 5px #888888;
    right: 700px; 
    top:  -200px;
    height:  150px;
}


@-webkit-keyframes myfirst {
    0%   { right:700px; top:-200px;background: yellow;}
    50%  {background:blue; right:700px; top:200px;}
    100% { right:700px; top:-200px; background: yellow}
}

#stam {
    font-size: large;
    background: green;
    width: 100px;
    top: 400px;
    position: absolute;
}

#stam:hover ~ #box1 { -webkit-animation:myfirst 2s; }

你可以在这里看到代码是如何工作的:http: //jsfiddle.net/FLe4g/2/

我的问题是:如何制作动画,所以当我将鼠标放在“stam”div 上时,动画将在动画的“50%”( 50% {background:blue; right:700px; top:200px;})处停止,并且只有当我将鼠标从“stam”div 移动时,动画才会继续? 我真的更喜欢使用 CSS3 而不是 js 的解决方案......谢谢!

4

1 回答 1

0

对于后退动画,我使用了过渡,所以当你前进时使用动画帧,当你后退时使用过渡:

#box1
    {
    position: relative;
    width: 300px;
    border: 1px solid black;
    box-shadow:  -3px 8px 34px  #808080;
    border-radius: 20px;
    box-shadow: -8px 5px 5px #888888;
    right: 300px; 
    top:  -200px;
    height:  150px;
    -webkit-transition: all 2s;
}


@-webkit-keyframes myfirst {
    0%   { right:300px; top:-200px;background: yellow;}
    100%  {background:blue; right:500px; top:200px;}
}

#stam {
    font-size: large;
    background: green;
    width: 100px;
    top: 400px;
    position: absolute;
}

#stam:hover ~ #box1 { 
    -webkit-transition: all 0s;
    background:blue; right:500px; top:200px;
    -webkit-animation:myfirst 2s; 
    -webkit-animation-fill-mode: forwards; 
    }​
于 2012-12-01T08:30:12.960 回答