javascript怎么获取元素的坐标
下面代码为什么offsetLeft第一次是0呢?<inputtype="button"value="点一下"onclick="move()"><divid="d"styl...
下面代码为什么offsetLeft第一次是0呢?<input type="button" value="点一下" onclick="move()">
<div id="d" style="background-color:#ff9966; position:absolute; left:170px; top:100px;width:300;height:300;overflow:scroll"
onclick="alert('offsetLeft:'+this.offsetLeft)">
<div style="height:600;width:600" onclick="alert('offsetLeft:'+this.offsetLeft)"></div>
</div>
<script language="javascript">
function move()
{
var d=document.getElementById("d")
a=eval(20)
d.scrollLeft+=a
}
</script>还有在么能让某一元素在指定的区域(如表格)里移动我想做一个球(层)在某一指定的区域里随即移动,当碰到此区域内的其他物体(也是层)时 该物体隐藏(应该是当球在此物体的坐标范围内时才隐藏吧)其他都好说,就是坐标的控制,offset和scrolll还有getBoundingClientRect()应该都可以吧,还是我用的不对各位大侠能否解决一下0的问题,(要是有像C#里的location属性就更好了) 展开
<div id="d" style="background-color:#ff9966; position:absolute; left:170px; top:100px;width:300;height:300;overflow:scroll"
onclick="alert('offsetLeft:'+this.offsetLeft)">
<div style="height:600;width:600" onclick="alert('offsetLeft:'+this.offsetLeft)"></div>
</div>
<script language="javascript">
function move()
{
var d=document.getElementById("d")
a=eval(20)
d.scrollLeft+=a
}
</script>还有在么能让某一元素在指定的区域(如表格)里移动我想做一个球(层)在某一指定的区域里随即移动,当碰到此区域内的其他物体(也是层)时 该物体隐藏(应该是当球在此物体的坐标范围内时才隐藏吧)其他都好说,就是坐标的控制,offset和scrolll还有getBoundingClientRect()应该都可以吧,还是我用的不对各位大侠能否解决一下0的问题,(要是有像C#里的location属性就更好了) 展开
3个回答
2013-04-24
展开全部
看了一下,你这种情况用根据鼠标位置来定位的div层来做好像不合适,你想想如果鼠标在文本框上时你不是也要将层放到文本框上吧,你可以看看别人的网站 上的,都是单独做的,这样体验才会好你想偷懒的话可以这样,用表格布局,后面多加一列,专门放显示信息的,然后根据事件的源对象,将信息显示到指定的单元格中另,function getpostion(e)//为了同时支持IE和FireFox,e必须为event对象要想将div位置固定的话需要将其posistion属性设为absolute;ps:晕死,竟然让我打三遍
展开全部
1)鼠标点击事件的坐标,相对于可视区域(Client)左上角
var point_y = evt.clientY;
var point_x = evt.clientX;
其中evt为鼠标点击事件。
2)可视区域左上角的坐标,相对于整个页面(Page)左上角
if(window.pageYOffset != 'undefined') {
point.x = window.pageXOffset;
point.y = window.pageYOffset;
}
else if(typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
point.x = document.documentElement.scrollLeft;
point.y = document.documentElement.scrollTop;
}
else if(typeof document.body != 'undefined') {
point.x = document.body.scrollLeft;
point.y = document.body.scrollTop;
}
3) 某元素的左上角坐标,相对于整个页面(Page)左上角
function elementLeft(e)
{
var offset = e.offsetLeft;
if(e.offsetParent != null) offset += elementLeft(e.offsetParent);
return offset;
}
var point_y = evt.clientY;
var point_x = evt.clientX;
其中evt为鼠标点击事件。
2)可视区域左上角的坐标,相对于整个页面(Page)左上角
if(window.pageYOffset != 'undefined') {
point.x = window.pageXOffset;
point.y = window.pageYOffset;
}
else if(typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
point.x = document.documentElement.scrollLeft;
point.y = document.documentElement.scrollTop;
}
else if(typeof document.body != 'undefined') {
point.x = document.body.scrollLeft;
point.y = document.body.scrollTop;
}
3) 某元素的左上角坐标,相对于整个页面(Page)左上角
function elementLeft(e)
{
var offset = e.offsetLeft;
if(e.offsetParent != null) offset += elementLeft(e.offsetParent);
return offset;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
css写错了width:300;height:300;加单位px
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询