jQuery在animate函数中设置css位置

时间:2012-12-12 13:55:00

标签: javascript jquery css jquery-animate

如何在jQuery的position:relative中设置position属性设置中没有初始animate()属性的元素?

这不起作用:

$(mLinks[id]).animate
(
    {
        position:'relative',
        left:'200px'
    }
);

鉴于mLinks是有效的DOM元素对象。

我还尝试使用durationcallback参数。

3 个答案:

答案 0 :(得分:5)

“动画”css position属性是没有意义的不是吗? relativeabsolutestatic之间没有任何内容或类似内容......

这就是我要做的事情:

$(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>

现在应该可以正常工作。