我正在使用D3的包装器,该包装器会生成带有使用x / y属性放置的轴标签的图形,这使它们很难正确旋转。我想更改行为而无需编辑正在使用的库。
我想转型:
<text x="690" y="344" dy="12" style="text-anchor: middle;">foo</text>
进入:
<text dy="12" style="text-anchor: end;" transform="translate(690,344) rotate(90)">foo</text>
我有正确的选择器,可以更改静态部分,但是在这种情况下,如何从另一个属性中引用一个属性?
chart.selectAll('g.cols.axis text')
.attr('x', null)
.attr('y', null)
.style("text-anchor", "end")
.attr('transform', 'translate(?,?) rotate(90)')
如何将x / y值复制到翻译部分?
答案 0 :(得分:1)
执行此操作的最简单方法可能是更改方法调用的顺序。您可以通过向设置器提供null
来擦除属性,因此在需要它们设置转换值时使它们不可用。您可以重新排序呼叫,以首先设置仍具有x
和y
属性的转换,然后再删除这些属性。
d3.select("svg").selectAll('text')
.style("text-anchor", "end")
.attr('transform', function() {
let elem = d3.select(this);
return `translate(${elem.attr("x")},${elem.attr("y")}) rotate(90)`;
})
.attr('x', null)
.attr('y', null);
<script src="https://d3js.org/d3.v5.js"></script>
<svg>
<text x="60" y="30" dy="12" style="text-anchor: middle;">foo</text>
</svg>
答案 1 :(得分:-1)
我认为不链接可以做到这一点。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>