2012-07-07 53 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

相關問題