1

我有一个rotate transform带有的 CSS3 cubic-bezier transition-timing-function,它在鼠标悬停时工作正常,但我想禁用 mouseleave 动画。我准备了一个简单的jsFiddle给你看。

img {
    transition : all 1s cubic-bezier(0.680,-0.550,0.265,1.550);
}

img:hover {
    transform: rotate(360deg);
}
4

1 回答 1

1

你的意思是当你悬停时你不希望它转换回来?您可以为此使用“无限”(实际上非​​常大) (这是速记transition-delay中的第二个时间值)。

像这样:

演示

CSS

img {
    transition: 0s 99999s; /* transition when mouse leaves */
}
img:hover {
    transform: rotate(360deg);

    /* transition on mouseover */
    transition: 1s cubic-bezier(0.680,-0.550,0.265,1.550);
}

请注意,这将使图像仅在第一次悬停时旋转。


如果你想让它在每次悬停时旋转,那么你必须使用关键帧动画。像这样:

演示

CSS(没有前缀,你必须添加它们):

img:hover {
    animation: rot 1s cubic-bezier(0.680,-0.550,0.265,1.550);
}
@keyframes rot {
    to {
        transform: rotate(360deg);
    }
}

另外,我注意到您首先编写了无前缀属性-您应该始终将其放在最后。尤其是现在,即将到来的 IE、Firefox 和 Opera 版本是无前缀转换。

于 2012-09-29T19:05:11.713 回答