问:这是Firefox 35中的错误吗?
$(angSelect[0], angSelect[2]).css("border-right-width", (function() {
var angW = $(angSelect[1]).css("border-right-width");
var boxW = selected[0].getBoundingClientRect().width;
var res = boxW - parseFloat(angW);
console.log("angW: " + angW + " boxW: " + boxW + " res: " + res);
return (res / 2) + "px";
})());
console.log($(angSelect[0]).css("border-right-width"));
控制台在整个代码中记录两次:
angW:199.833px boxW:300 res:100.167
49.5px
这显然是不正确的。第二个日志应该是50.0835。代码在窗口调整大小事件中按顺序执行。
IE11中的结果:
angW:200px boxW:299.99993896484375 res:99.99993896484375
49.99
[新] JSFiddle :
请记住在新标签页中打开结果,以便在没有JSFiddle干扰的情况下放大和缩小。另外,以浮点格式打开开发人员控制台以获得结果。
答案 0 :(得分:1)
我不确定你的期望是什么。宽度值不会因为缩放而改变,这样做会很奇怪。当您在Firefox中进行缩放时,相同的值(例如100px)仅显示更大或更小,取决于比例因子,但如果您查询元素,您将获得相同的大小:它就像高密度显示。 实际上,您实际上可以使用devicePixelRatio来获取比例因子。