Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-window.getComputedStyle返回;“自动”;作为元素顶部和左侧属性_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript-window.getComputedStyle返回;“自动”;作为元素顶部和左侧属性

Javascript-window.getComputedStyle返回;“自动”;作为元素顶部和左侧属性,javascript,jquery,html,css,Javascript,Jquery,Html,Css,在我的网页上,我有一些元素(div、sub-div、button等),它们的位置是相对于它们所在的div以及它们之间的位置生成的。其结果是,当使用window.getComputedStyle时,top和left属性不是数字值,而是简单的“auto”,而宽度和高度是px 问题是我需要绝对值来进行测量,所以我想知道是否有办法得到它们。我希望window.getComputedStyle可以,但显然不行 下面有一个示例,没有任何格式,但存在相同的问题 如果有jQuery解决方案,我当然也会很感激 亲

在我的网页上,我有一些元素(div、sub-div、button等),它们的位置是相对于它们所在的div以及它们之间的位置生成的。其结果是,当使用window.getComputedStyle时,top和left属性不是数字值,而是简单的“auto”,而宽度和高度是px

问题是我需要绝对值来进行测量,所以我想知道是否有办法得到它们。我希望window.getComputedStyle可以,但显然不行

下面有一个示例,没有任何格式,但存在相同的问题

如果有jQuery解决方案,我当然也会很感激

亲切的问候,
杰森


试验
功能测试(){
var style=window.getComputedStyle(document.getElementsByTagName(“按钮”)[0]);
警觉的(
“top=“+style.top+//auto”
“\nleft=“+style.left+//auto”
“\nwidth=“+style.width+//63px
“\nheight=“+style.height//24px
);
}
试试看!

当元素的计算
位置设置为
static
(这是默认值)时,
top
left
无需计算
top
left
在这种情况下是不相关的。

getComputedStyle方法返回CSS属性的值

如果样式表作者(您)没有为某些CSS属性(即:top、right、bottom和left)指定值,则返回的解析值将是默认值。这些CSS属性都有一个默认值“auto”

如果您不能或不想在样式表中指定一个值,并且只需要与视口的左上角有关的坐标,请考虑使用:


试验
/*删除默认样式以确保顶部和左侧的值为0*/
正文{边距:0;填充:0}
按钮{显示:块}
功能测试(){
var button=document.getElementsByTagName(“按钮”)[0],
style=window.getComputedStyle(按钮),
坐标=button.getBoundingClientRect();
警觉的(
“top=“+coordinates.top”+
“\nleft=“+coordinates.left+
“\nwidth=“+style.width+//63px
“\nheight=“+style.height//24px
);
}
试试看!

OK,但如果我使用“offsetTop”和“offsetLeft”,它将返回一个正确的值。唯一的问题是偏移位置仅相对于周围图元。我不敢相信,无论发生什么情况,都不可能得到元素的绝对位置……没有返回所需值的js方法/属性。你必须自己计算。基本工作流程是将当前元素和每个元素的偏移量(上/左)相加。当您使用jQuery时,您可以为我通过它,它返回“8”表示左侧和顶部。但是
位于
内部,并且没有填充或任何其他偏移,因此顶部和左侧的正确值应为“0”。还是我错了?哇,很抱歉,斯坦。我现在看到了这种反应(一年多后,nbd)