使用Javascript </div>重新定位<div>

时间:2012-09-26 13:15:02

标签: javascript html

我正在尝试根据特定条件重新定位页面上的div。

if (somecondition)
    document.getElementById("Div1").setAttribute("style", "position: absolute; left:297px; top:882px; height: 30px; width: 181px; margin-top: 0px;");

它不是在下面的html中重新定位div:

<div id="Div1" style="top:366px; left:134px; position:absolute; height: 30px; width: 175px;">

if fires中的其他代码。

有人可以帮忙吗? 浏览器:IE8

7 个答案:

答案 0 :(得分:7)

如果要将更改反映在文档中,则使用setAttribute是不可靠的。请改用Element.style:

var el = document.getElementById('Div1');
el.style.position = 'absolute';
el.style.left = '397px';
el.style.top = '882px';
el.style.height = '30px';
el.style.width = '181px';
el.style.marginTop = '0px';

答案 1 :(得分:3)

你只需要做

document.getElementById("Div1").style.<some css property> = <some value>; // like
document.getElementById("Div1").style.left = "297px";
document.getElementById("Div1").style.top = "882px";

(当然你应该缓存getELementById)

答案 2 :(得分:2)

要将CSS用作单个字符串,您应该设置Element.style.cssText属性:

var element = document.getElementById("Div1");
element.style.cssText = "position: absolute; left:297px; top:882px; height: 30px; " +
                        "width: 181px; margin-top: 0px;";

答案 3 :(得分:2)

它的工作完全正常,请查看the demo here

<强> HTML:

<div id="Div1" style="top:366px; left:134px; position:absolute; height: 30px; width: 175px;">
    hello world
</div>

<强>使用Javascript:

  

document.getElementById(&#34; Div1&#34;)。setAttribute(&#34; style&#34;,&#34; position:absolute; left:297px; top:82px; height:30px; width: 181px; margin-top:0px;&#34;);   

答案 4 :(得分:2)

制作两个样式类,并为类添加两个不同的位置。如果满足javascript条件,则更改DIVs类。 E.g:

if(someCondition) {
    document.getElementById('Div1').setAttribute('class', 'style2');
} else {
    document.getElementById('Div1').setAttribute('class', 'style1');
}

CSS样式

.style1 {
    top:366px;
    left:134px;
    position:absolute;
    height: 30px;
    width: 175px;
}

.style2 {
    position: absolute;
    left:297px;
    top:882px;
    height: 30px;
    width: 181px;
    margin-top: 0px;

HTML

<div id="Div1" class="style1"></div>

答案 5 :(得分:1)

尝试

document.getElementById("Div1").style.left = "297px";
document.getElementById("Div1").style.top = "882px";

答案 6 :(得分:0)

你没有把javascript代码放在document.ready(function(){});?