2012-07-07 45 views
0

你好我想定位absoulte一个div在一个表单中的字段集之后,但表单有另一个容器元素和fieldst的高度是不固定的,它由内部的内容改变。 我用jQuery做了这个,但是不起作用。哦,我不能把div放在表单中,因为div包含另一种形式。位置div在另一个元素的形式

<script> 
    $(function(){ 
    var heightOfform = document.getElementById("form").scrollHeight; 
    var heightOffsomethingafter = document.getElementById("somethingafter").scrollHeight; 
    document.getElementById("divtoposition").css('top', (heightOfform-heightOffsomethingafter)+'px'); 
    }); 
</script> 
<style> 
#all {position:relative;} 
#divtoposition {position:absolute;} 
</style> 
<div id="all"> 
<div id="divtoposition"><form></form></div> 
<div id="formcontainer"> 
    <form id="form"> 
    <fieldset id="afterthis"></fieldset> 
    <div id="somethingafter"></div> 
    </form> 
</div> 
</div> 
+0

你不能只是在'#form'下面放置'#somethingafter',然后在'#form'和'#somethingafter'之间放置'#divtoposition'?如果不是,你能解释为什么你需要这种格式吗? – ClarkeyBoy 2012-07-07 18:25:50

回答

0

我觉得有一个复杂的答案,但你能解释为什么你想要定位的div有一个窗体吗?它有什么作用?它可以以另一种方式完成吗?您无法将表单放入表单中,以至于无法使用。您可以将DivToPosition的顶部设置为100px,然后让jquery获取字段集的高度。如果fieldset的高度是150px,则可以让Js将150添加到100,现在DivToPosition的高度为250px;

<script> 
$(function(){ 
var divtopositionTop = 100, 
fieldsetHeight = $('#afterthis').height(); 
    $('#divtoposition').css('top', divtopositionTop+fieldsetHeight+'px'); 
}) 
</script> 

只是一个例子,它可以做到。必须在doc上完成,以便设置高度。然而,这可能会导致位置发生快速变化,因为在使用样式时,元素从1位置移动到另一位置。

+0

divtoposition中的表单是一个登录框,另一个表单是一个订单表单,但正如我所说的,fieldset高度随着内容的变化而变化。但实际上,我的代码工作只是将document.getElementById(“divtoposition”)更改为$('#divtoposition'),现在它可以工作,但div已经超过了'somethingafter',即使我为'#somethingafter设置了一个页边距'或'#form'我可以将-Xpx设置为最高位置,但我不知道这是否适用于所有分辨率或任何内容高度。 – 2012-07-07 18:48:03

相关问题