2012-08-10 46 views
3

我有两个CSS类(c1c2),我用CSS3转换在它们之间切换。两个类之间的状态

现在,我想一个div来(非动画)的c1c2之间的状态,例如60%c1和40%c2。 (如果我玩c1c2之间1秒持续时间的过渡,我想帧的出现在0.4秒的状态)

c1c2具有许多属性(变换等),所以它是不容易计算每个属性按要求的百分比并将其设置为div

有没有用于此目的的任何CSS/jQuery方法?

+0

许多属性不能用百分比来衡量。所以一个通用的解决方案是不太可能的。 – techfoobar 2012-08-10 10:28:01

+0

浏览器可以在播放CSS3动画时计算所有属性。难道只有一帧动画的状态是可能的吗? – 2012-08-10 10:29:09

+0

为什么不使用第三课?当div计划在这个中间状态?在鼠标或什么? – 2012-08-10 10:36:34

回答

2

jQueryUI的switchClass,addClass函数不支持step函数参数,这使得实现这一点非常困难。

但是,如果你能在动画代码本身指定的风格,这是可以做到 - 选中此琴:http://jsfiddle.net/techfoobar/fAZqn/2/

0

Here is working jsFiddle,这里是结构:

的jQuery:

//setting animation values 
var value1 = 60; 
var value2 = 40; 

$('a').click(function(){ 
var takeClass = $(this).attr('class'); 
//takes class from clicked element 

var selectEle = $('.'+ takeClass +'Box'); 
//creating selector with takeClass value 

$('span').not(selectEle).animate({'width':value2+'px','height':value2+'px'},90); 
selectEle.animate({'width':value1+'px','height':value1+'px'},90); 
});​ 

HTML:

<a class="c1">1</a> 
<a class="c2">2</a> 
<span class="c1Box"></span> 
<span class="c2Box"></span>​