2011-09-03 141 views
0
function pageSize(what){ 
    oldHeight = parseInt(document.getElementById('items').style.height); 
    if(what == 'bigger') {newHeight = oldHeight + 100}; 
    if(what == 'smaller'){newHeight = oldHeight - 100}; 
    document.getElementById('items').style.height = newHeight + 'px'; 
} 

上面,我把javascript代码至极应该做的伎俩...这是德格:更改div的高度dynamicaly

<div id="items" style="height: 100%;"></div> 

,我一定能更大或更小与

<a href="#" onclick="pageSize('bigger')"><img src="img/contentbigger.png" /> Page bigger</a> &nbsp; <a href="#" onclick="pageSize('smaller')"><img src="img/contentsmaller.png" /> Pagina smaller</a> 

但是这段代码在最新的Mozilla Firefox中没有做任何事情,也没有最新的Internet Explorer。

有人看到这里有什么问题吗?因为我不是很好用javascript ...

+0

考虑使用jQuery,其中'.height()'会给你一个可靠的值和一个可靠的可能性来设置它 –

回答

2

我猜parseInt()应用于像<numeric>px<numeric>%字符串具有假的返回值。您应该省略将px附加到您的身高以使其工作。

+0

谢谢,但我该怎么做? – Rune

2

使用element.offsetHeight而不是element.style.height。 OffsetHeight也是一个数字,所以不需要parseInt。

0

得到oldHeight时请务必摆脱pxem字符串:

function pageSize(what) { 
    oldHeight = document.getElementById('items').style.height.replace('px','').replace('em',''); 
    oldHeight = parseInt(oldHeight); 
    if(what == 'bigger') {newHeight = oldHeight + 100}; 
    if(what == 'smaller'){newHeight = oldHeight - 100}; 
    document.getElementById('items').style.height = newHeight + 'px'; 
} 
0

适用的唯一ID这两个DIV的。我们说“左”和“右”。 因此,代码将是这样的:

<script> 
function height() 
{ 
    var right = document.getElementById('right').clientHeight; 
    var left = document.getElementById('left').clientHeight; 

    if(right > left) 
    { 
     document.getElementById('left').style.height = right; 
    } 
    else 
    { 
     document.getElementById('right').style.height = left; 
    } 
} 
</script> 

然后刚刚火在页面加载

<body onload="height()"> 

这应该做的伎俩功能。