gpt4 book ai didi

javascript - 为什么 PhantomJS 在使用 getBBox() 方法时返回整数?

转载 作者:行者123 更新时间:2023-11-30 17:23:11 29 4
gpt4 key购买 nike

我正在使用 PhantomJS 1.9.7 和 this 的修改版本D3.js 树示例,但需要对涉及使用其边界框的标签进行一些不同的计算。当我在 text DOM 元素上调用 getBBox() 时,我收到的值都是整数,而不是 float 。

我整理了一个例子来展示这一点:

Look at the following result in your browser ,然后使用 PhantomJS 运行它并观察控制台输出:

var page = require('webpage').create();

page.onConsoleMessage = function(msg, lineNum, sourceId) {
console.log(msg);
};

page.onAlert = function() {
phantom.exit();
};

page.open('http://jsfiddle.net/99mAZ/4/');

对我来说,输出( chop 的)与 Chrome 类似:

{"x":10,"y":-6.40625,"width":60,"height":13.015625}
{"x":-49,"y":-6.40625,"width":39,"height":13.015625}
{"x":-41,"y":-6.40625,"width":31,"height":13.015625}
{"x":-39,"y":-6.40625,"width":29,"height":13.015625}
{"x":-29,"y":-6.40625,"width":19,"height":13.015625}

还有 Phantom:

{"x":10,"y":-7,"width":60,"height":13}
{"x":-49,"y":-7,"width":39,"height":13}
{"x":-41,"y":-7,"width":31,"height":13}
{"x":-39,"y":-7,"width":29,"height":13}

getBBox() 返回一个 SVGRect。 interface对于 SVGRect 定义为返回所有浮点值。它们很可能是 float ,但它们至少是圆 Angular ,这在处理较大的单位(例如英寸)时用处不大。

有什么方法可以提高精度吗?

最佳答案

直到最近一两年,大多数浏览器都很少有定位低于全像素分辨率的概念。由于它是如此之新,因此很难在多个浏览器中获得这些值的完全一致性。

您使用的 PhantomJS 版本可能不支持子像素定位。我不确定那是因为您使用的是旧版本,还是根本不受支持。

关于javascript - 为什么 PhantomJS 在使用 getBBox() 方法时返回整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24787085/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com