css3鼠标移出,CSS3:hover后鼠标移出animation

CSS3:hover后鼠标移出animation

所以,有可能在鼠标上有反转animation,例如:

.class{ transform: rotate(0deg); } .class:hover{ transform: rotate(360deg); }

但是,当使用@keyframesanimation,我不能得到它的工作,例如:

.class{ animation-name: out; animation-duration:2s; } .class:hover{ animation-name: in; animation-duration:5s; animation-iteration-count:infinite; } @keyframe in{ to {transform: rotate(360deg);} } @keyframe out{ to {transform: rotate(0deg);} }

那么最佳的解决scheme是什么,知道我需要迭代和animation本身…

谢谢

http://jsfiddle.net/khalednabil/eWzBm/

我觉得如果你有一个to ,你必须用一个from 。 我会想到这样的事情:

@keyframe in { from: transform: rotate(0deg); to: transform: rotate(360deg); } @keyframe out { from: transform: rotate(360deg); to: transform: rotate(0deg); }

当然,必须已经检查过了,但是我发现奇怪的是你只使用了transform属性,因为CSS3并没有完全实现。 也许这会更好地与以下考虑:

Chrome使用@-webkit-keyframes ,不需要特别的版本

Safari从版本5+开始使用@-webkit-keyframes

Firefox从版本16开始使用@keyframes (v5-15使用@-moz-keyframes )

Opera使用@-webkit-keyframes 15-22版(只有v12使用了@-o-keyframes )

Internet Explorer从版本10+开始使用@keyframes

编辑:

我想出了那个小提琴:

使用最less的代码。 它接近你所期望的吗?

我不认为这是可以实现的只使用CSSanimation。 我假设CSS转换不能满足您的使用情况,因为(例如)您要将两个animation链接在一起,使用多个停止,迭代或以其他方式利用额外的动力animation授予您的方式。

我还没有find任何方法来触发一个CSSanimation,特别是在没有使用JavaScript附加“over”和“out”类的情况下。 尽pipe当hover结束时,您可以使用基本CSS声明触发animation,然后在页面加载时运行相同的animation。 使用“over”和“out”类,您可以将定义拆分为基本(加载)声明和两个animation触发器声明。

这个解决scheme的CSS将是:

.class { /* base element declaration */ } .class.out { animation-name: out; animation-duration:2s; } .class.over { animation-name: in; animation-duration:5s; animation-iteration-count:infinite; } @keyframes in { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes out { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }

并使用JavaScript(jQuery语法)将类绑定到事件:

$(".class").hover( function () { $(this).removeClass('out').addClass('over'); }, function () { $(this).removeClass('over').addClass('out'); } );

如果只有一个animation,你会更好吗?

animation-direction: reverse

它比这一切简单得多:简单地转换元素上的相同属性

.earth { width: 0.92%; transition: width 1s; } .earth:hover { width: 50%; transition: width 1s; }

尝试这个:

@keyframe in { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframe out { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }

支持Firefox 5+,IE 10+,Chrome,Safari 4+,Opera 12+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值