【发布时间】:2013-12-21 09:55:12
【问题描述】:
我有一个带有样式的元素
position: relative;
transition: all 2s ease 0s;
然后我想在点击后平滑地改变它的位置,但是当我添加样式改变时,过渡并没有发生,而是元素立即移动。
$$('.omre')[0].on('click',function(){
$$(this).style({top:'200px'});
});
但是,例如,如果我更改 color 属性,它会顺利更改。
$$('.omre')[0].on('click',function(){
$$(this).style({color:'red'});
});
这可能是什么原因?是否存在不是“过渡”的属性?
编辑:我想我应该提到这不是 jQuery,它是另一个库。代码似乎按预期工作,正在添加样式,但转换仅在第二种情况下有效?
【问题讨论】:
-
假设 $$ 是 jQuery 的别名,执行 [0] 将返回本机 dom 对象(与 jquery 对象相反)并且没有任何
.on()方法。如果不是 - $$ 是什么? -
这些都不是有效的,如果你使用 jQuery,没有任何东西叫做 style(),而在原生 JS 中,它肯定不会那样工作。
-
有一组可以转换的规则。见W3 Specification
-
@Goldentoa11
top似乎在列表中,这消除了我对top不能用于转换的怀疑。 -
@php_nub_qq 检查 adaneo 的答案和我对它的评论,从外观上看,您需要先设置一个
top值(例如设置为 0),然后再更改它(设置为 200 或随便)
标签: javascript css css-transitions