我正在尝试使用一个简单的函数从d3.js图表中删除一些空间,该函数计算外部和最近的内部元素的偏移量(顶部和左侧),然后获取它们之间的间隙并“移除”它负边距。
这就是我的功能:
function gapNode() {
var offsetParent = $("#chart").offset().top;
var valArr = [];
$("#chart .node").each(function(){
var offsetThis = $(this).offset().top;
var offSetGap = offsetThis - offsetParent;
valArr.push(offSetGap);
});
return Math.round(Math.min(...valArr));
}
然后我将margin-top设置为此值,如下所示:
$('#chart svg').css('margin-top', '-' + gapNode());
这在台式机上运行良好。但是当涉及到iOS(无论是Safari还是Chrome)时,总是给我一个“ 0”作为值,我不知道为什么。我已经尝试使用position().top
或像在this中那样添加校正后的偏移量功能。
您可以找到我的整支笔here。相关的jQuery代码位于笔的最底部。
也许任何人在使用SVG或其他工具时都遇到相同的问题。