Javascript - 动态改变绝对定位

时间:2010-11-22 18:44:36

标签: javascript jquery html css

我有一个HTML页面,它有一个绝对位置的div。我正在尝试编写一些Javascript,它会在生成之前生成一些数据时动态地移动div。我一直在使用.css jquery函数,但它似乎没有工作。关于如何实现这一点的任何想法?

我有以下div位于我的页面上,下面的样式。

<div id="MyControl">
     <%Html.RenderPartial("MyControl")%>
 </div>

#MyControlControl  {
    position:absolute;
    text-align:left;
    left:100px;
    top:900px;
}

在我的html的主要部分,我正在构建一个包含数据库记录的动态表。每当添加一个新行时,我想调用某种Javascript来将div向下移动50 px。我试过javascript(document.getElementByID给我一个对象预期错误)和jquery .css函数。我无法上班。

4 个答案:

答案 0 :(得分:3)

使用jQuery抓住位置并递增它。

var d = $('#mydiv');
// Move down by 50px
d.css({top:d.position().top+50+'px'});

答案 1 :(得分:1)

如果您知道要将其移动的单位数量,您可以使用以下方式实现:

var obj = document.getElementById('<div id>');
obj.style.height = '<new height><units>'; i.e. '15px';

修改

在我发布之前,我没有看到你使用jQuery。

答案 2 :(得分:1)

如此。假设你有一个带有规则的div

div.fixed{
position:absolute;
top:10px;
left:10px;
}

和一些javascript

...

$('.fixed').css('top','20px');

...

你已经将类.fixed的绝对DIV移动到距离页面顶部20像素的位置..我们真的需要看一些实际的代码来帮助你更好......

答案 3 :(得分:1)

你能不能只将50px添加到top属性?

var myControl = document.getElementById("MyControl");
var oldTop = parseInt(myControl.style.top);
myControl.top = oldTop +50;