问题描述
我有一个文本框,下面还有一个DIV,我想让DIV绝对定位在文本框的下面,因为如果相对定位的话,文本框下面的按钮之类的会被DIV撑走。我想让DIV浮在这些按钮之上并定位在文本框之下。不知道怎么得到这个文本框的TOP,LEFT值,因为我并没有设置这些值,用文本框.style.top/left得不到。希望达人们帮帮忙。谢谢。
解决方案
先将div和文本框放在同一个父元素之下.然后通过文本框的offsetTop/offsetHeight/offsetLeft的值,对div进行定位:var divObj = ...;//div元素var inputObj = ...;//文本框divObj.style.top = inputObj.offsetTop + inputObj.offsetHeight;divObj.style.left = inputObj.offsetLeft;
解决方案二:
如果需要兼容ie,firefox,那么元素的父元素的css设置会使在这两个浏览器下获取的offset值不一样,比如说父元素、祖父元素是否使用的浮动,是否设置了相对绝对定位等等,从而使的定位出现偏差,最保险的方法,是先获取文本框相对于body的偏移,示例代码getEventPosition:function(Q,O){if(typeof Q.offsetX!='undefined'){var H=Q.target||Q.srcElement;var y=[Q.offsetX,Q.offsetY];while(H&&H!=O){var la=H.style.zoom;if(la){y[0]*=la; y[1]*=la;}if(!(0==H.clientWidth && 0==H.clientHeight && H.offsetParent && 'TD'==H.offsetParent.nodeName)){y[0]+=H.offsetLeft;y[1]+=H.offsetTop;}H=H.offsetParent;};return y;}else if(typeof Q.pageX!='undefined'){var y=u.getPageOffset(O);return[Q.pageX-y[0],Q.pageY-y[1]];}else return[0,0];}getPageOffset:function(m){var Z=[0,0];F=m;while(F && F.offsetParent){Z[0]+=F.offsetLeft;Z[1]+=F.offsetTop;F=F.offsetParent};return Z;}关键代码自己看啦。
解决方案三:
直接调用offsetTop,offsetLeft属性就可以了
解决方案四:
<script>function pos(){alert(uname.offsetTop+" "+uname.offsetLeft);}</script><input type="text" name="uname" value="" onfocus="pos()">
解决方案五:
解决方案六:
看看是不是我相册里的那个样子!我上传的图片不见了!
解决方案七:
解决方案八:
楼主看下,是不是下面代码表达的意思.<html><body><input type="text" id="myText" name="myText" style="position:absolute; left:150; top:100; "/><script> alert(myText.offsetTop)</script></body></html>
解决方案九:
只有在position为relative或absolute时才能操作top/right/bottom/left.你的这个问题首先要设定DIV的position为下列情况之一1.relative:相对定位,这时div的尺寸会影响父节点的尺寸2.absolute:绝对定位,这时div的尺寸不影响父节点的尺寸,但是具体位置受父节点的position设置影响.其中的具体差异你测试一下就明白了.根据你的情况选择relative,然后设置top值也许就能解决问题
解决方案十:
使用jquery1.2.6,其中有相关的函数,API参考中似乎没有,不过看源代码就能找到。