javascript 获取控件坐标实现方法如下:
function getPos(o) //取元素坐标{
var x = 0, y = 0
do {
x += o.offsetLeft
y += o.offsetTop
} while (o = o.offsetParent)
return { 'x': x, 'y': y }
}
补充:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
offsetTop:获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置
event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标
document.documentElement.scrollTop 垂直方向滚动的值
event.clientX+document.documentElement.scrollTop 相对文档的水平座标+垂直方向滚动的量
以上主要指IE之中,FireFox差异如下:
IE6.0、FF1.06+:
clientWidth = width + padding
clientHeight = height + padding
offsetWidth = width + padding + border
offsetHeight = height + padding + border
IE5.0/5.5:
clientWidth = width - border
clientHeight = height - border
offsetWidth = width
offsetHeight = height
(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)
在控件的clickable属性为false时,可以使用控件的bounds属性来定位其位置,并通过点击坐标来实现单击操作。在您提供的信息中,bounds属性的值为(31,77,47,106),这代表了该控件在屏幕上的位置信息。具体来说,这个值表示该控件的左上角坐标为(31,77),右下角坐标为(47,106)。因此,您可以通过计算出该控件的中心坐标,然后在该坐标处实现单击操作。示例代码如下:
scssCopy codelet widget = id("back_iv").findOne()
let bounds = widget.bounds()
let centerX = (bounds.left + bounds.right) / 2
let centerY = (bounds.top + bounds.bottom) / 2click(centerX, centerY)
上述代码中,首先获取到了控件对象,然后获取了该控件的bounds属性,并计算出了该控件的中心坐标(centerX, centerY)。最后,通过click方法在该坐标处实现了单击操作。