1

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

这不起作用:

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

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

我也尝试使用durationandcallback参数。

4

3 回答 3

6

“动画”cssposition属性是没有意义的,不是吗?relativeabsolute或或类似的东西之间没有static任何东西......

这就是我要做的:

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

如果你阅读了相应的jQuery 文档,你会发现:

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).

于 2012-12-12T13:56:46.850 回答
2

animate方法不允许您设置 css 属性,这是有道理的,尽管要拥有出色的动画,您必须正确设置 css 属性,这是两件不同的事情。

所以首先你应该设置css属性。你应该使用css方法:

$(mLinks[id]).css("position", "relative")

之后就可以开始动画了:

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

将所有内容结合在一起,您将拥有:

$(mLinks[id]).css("position", "relative").animate({ left:'200px' });
于 2012-12-12T13:56:43.970 回答
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>

现在应该可以正常工作了。

于 2012-12-12T14:05:41.573 回答