如何在jQuery的position:relative
中设置position
属性设置中没有初始animate()
属性的元素?
这不起作用:
$(mLinks[id]).animate
(
{
position:'relative',
left:'200px'
}
);
鉴于mLinks
是有效的DOM元素对象。
我还尝试使用duration
和callback
参数。
答案 0 :(得分:5)
“动画”css position
属性是没有意义的不是吗? relative
和absolute
或static
之间没有任何内容或类似内容......
这就是我要做的事情:
$(mLinks[id]).css('position', 'relative').animate
(
{
left:'200px'
}
);
如果你阅读了相应的jQuery doc,你会发现:
most properties that are non-numeric cannot be animated using basic jQuery functionality (For example, width, height, or left can be animated but background-color cannot be, unless the jQuery.Color() plugin is used).
答案 1 :(得分:2)
animate
方法不允许你设置css属性,这是有意义的,虽然要有一个很棒的动画你必须正确设置css属性,这是两个不同的东西。
首先,您应该设置css属性。你应该使用css
方法:
$(mLinks[id]).css("position", "relative")
您可以从动画开始:
$(mLinks[id]).animate({ left:'200px' });
将所有这些结合起来,你将拥有:
$(mLinks[id]).css("position", "relative").animate({ left:'200px' });
答案 2 :(得分:0)
看看这段代码。
<html>
<head>
<title>Hello there</title>
<script type="text/javascript" src = "assets/js/jquery.min.js"></script>
</head>
<body>
<div class="tobechanged" style = "background:#ddd;position:fixed;">
hello there.
</div>
<script type="text/javascript">
$('.tobechanged').css('position','relative').animate({
opacity: 0.9,
left: '+=50'},
4000, function() {
//some stuff here.
});
</script>
</body>
</html>
现在应该可以正常工作。