相关疑难解决方法(0)

如何在D3图表中的标签中包含换行符?

我正在使用D3生成条形图(我使用了此示例中的代码).我在x轴上使用的标签每个都是两个字,因为这使得所有标签重叠,我需要跨行打破这些标签.(如果我可以用换行符替换每个标签中的所有空格,那就没问题了.)

我最初尝试使用文字换行符(&#xA;)替换空格并xml:space="preserve"在标签<text>元素上设置.不幸的是,事实证明SVG不尊重这个属性.接下来,我尝试将每个单词包装成<tspan>我以后可以使用的单词.我通过这个函数传递了每个标签:

function (text) {
    return '<tspan>' + text.replace(/ /g, '</tspan><tspan>') + '</tspan>';
}
Run Code Online (Sandbox Code Playgroud)

但这只是将文字<tspan>放入输出中.如何将文本标签包装在tspans中(或执行其他操作)以使我的标签不重叠?

javascript svg d3.js

62
推荐指数
4
解决办法
5万
查看次数

我可以将HTML嵌入到HTML5 SVG片段中吗?

HTML5支持<svg>标记,允许将SVG嵌入到HTML中.

深入挖掘,我可以在<svg>片段中嵌入一​​些HTML 吗?例如,我想<table>在我的SVG图形的某些部分放置一个CSS .

我做了一个小测试,Chrome12不喜欢<p>里面的HTML <svg>.是否有一些技术可以使它工作(例如可能是一个html容器标签?)?

html5 svg

46
推荐指数
3
解决办法
2万
查看次数

在HTML页面中查找所有文本节点

可能重复:
getElementsByTagName()等效于textNodes

对于这个问题,我需要找到特定节点下的所有文本节点.我可以这样做:

function textNodesUnder(root){
  var textNodes = [];
  addTextNodes(root);
  [].forEach.call(root.querySelectorAll('*'),addTextNodes);
  return textNodes;

  function addTextNodes(el){
    textNodes = textNodes.concat(
      [].filter.call(el.childNodes,function(k){
        return k.nodeType==Node.TEXT_NODE;
      })
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

然而,鉴于XPath可以简单地查询.//text()并完成它,这似乎是不优雅的.

将所有文本节点放在HTML文档中的特定元素下的最简单方法是什么,适用于IE9 +,Safari5 +,Chrome19 +,Firefox12 +,Opera11 +?

"最简单"被宽松地定义为"有效且短暂,没有打高尔夫球".

html javascript

38
推荐指数
2
解决办法
3万
查看次数

SVG Word Wrap - 显示塞子?

为了好玩,我试着看看我能在多大程度上实现一个用于RIA的SVG浏览器客户端,我在业余时间搞乱了.

但是看起来似乎是一个巨大的绊脚石.没有自动换行!!

有没有人知道任何工作(我在想某种JavaScript或特殊标签,我不知道)?

如果不是,我要么必须走xhtml路线并开始在我的SVG(哎哟)中粘贴HTML元素,要么在SVG 1.2准备好的十年后再回来.

svg word-wrap

22
推荐指数
4
解决办法
3万
查看次数

在SVG中绘制的矩形之间插入文本

我在SVG中有一个代码:

<svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg">
    <rect x="20" y="20" width="250" height="250" style="fill:blue">
        <animate attributeType="CSS" attributeName="opacity" from="1" to="0" dur="5s" repeatCount="indefinite" />
    </rect>
</svg>
Run Code Online (Sandbox Code Playgroud)

现在我需要在此之间添加一个文本rectangle.谁能告诉我怎么做?

html animation svg text

16
推荐指数
1
解决办法
1万
查看次数

使文本适合SVG元素(使用D3/JS)

我想在我创建的矩形内写文本,如下所示:

body = d3.select('body')

svg = body.append('svg').attr('height', 600).attr('width', 200)

        rect = svg.append('rect').transition().duration(500).attr('width', 150)
                        .attr('height', 100)
                        .attr('x', 40)
                        .attr('y', 100)
                        .style('fill', 'white')
                        .attr('stroke', 'black')

        text = svg.append('text').text('This is some information about whatever')
                        .attr('x', 50)
                        .attr('y', 150)
                        .attr('fill', 'black')?
Run Code Online (Sandbox Code Playgroud)

但是,正如您所见(http://jsfiddle.net/Tmj7g/3/),文本被切断了.创建svg矩形内部的段落的任何好方法?谢谢,

javascript svg text d3.js

13
推荐指数
2
解决办法
4万
查看次数

SVG - 如何设置文本行高

似乎行高是svg文本中缺少的一个CSS属性.我发现SVG的最佳资源是:Jenkov.com SVG教程并没有提及它,也没有在MDN上找到它.

因此,如果有人能够明确地阐明这一点或分享技术.我基本上对包装的文本行之间的间距感兴趣,而不是独立的文本元素.

谢谢

javascript css svg

11
推荐指数
1
解决办法
1万
查看次数

如何实现SVG 1.2 Tiny textArea?

我最近在互联网上浏览了SVG本地有一个textArea(我可能需要这个用于文本包装目的)

我使用了这个例子并在Chrome5里面的Chrome5元素中进行了测试,但它不会显示textArea元素,任何人都知道如何正确实现SVG textArea?或者是否可能不支持SVG 1.2 tiny?(我只使用通常的SVG 1.1)

html5 svg

9
推荐指数
1
解决办法
1万
查看次数

在HTML5中,我可以制作不规则形状的文本框吗?

为了清楚起见,我不是从一个矩形文本框开始并漂浮在不规则图像周围.我创建一个任意形状,然后键入文本,以最好地适应这种形状.是否有jquery插件或html5画布?这甚至可能吗?

javascript html5 text

5
推荐指数
1
解决办法
786
查看次数

ImageMagick 将 svg 转换为带有文本的 png 生成空白图像

这是我的 svg

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svgfile" style="position:absolute; height:1200px; width:1600px;" version="1.1" viewBox="0 0 1600 1200">
<g class='shape' id='draw136.1' shape='text1' style='word-wrap: break-word; font-family: Arial; font-size: 30.599999999999998px;' undo='-1'>
  <switch>
    <foreignObject color='#000000' height='67.53719008264463' width='216.80495662949198' x='740.5638166047088' y='501.5702479338843'>
      <p xmlns='http://www.w3.org/1999/xhtml'>Test Writing in the box</p>
    </foreignObject>
  </switch>
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)

当我运行以下 ImageMagick 脚本时

 convert 26.svg 26.png
Run Code Online (Sandbox Code Playgroud)

我得到的只是一个空的png

所以如果我将 svg 更改为以下形式

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="svgfile" style="position:absolute; height:1200px; width:1600px;" version="1.1" viewBox="0 0 1600 1200">
    <text color='#000000' style='font-family: Arial; font-size: 30.599999999999998px;' height='67.53719008264463' width='216.80495662949198' x='740.5638166047088' y='501.5702479338843'>
    Test Writing in the box
    </text> …
Run Code Online (Sandbox Code Playgroud)

svg imagemagick

5
推荐指数
0
解决办法
1369
查看次数

是否可以将svg的&lt;text&gt; / &lt;tspan&gt;设置为固定宽度?

我想将文本向右对齐,在这种情况下,我必须将文本设置为固定宽度。因为文本内容是动态添加的。

<text>
  <tspan x="421" y="15" text-anchor="right"
     baseline-shift="0%" kerning="0" 
     font-family="Arial" font-weight="bold"
     font-size="12" fill="#490275" xml:space="preserve">
       This is entered by user.
</tspan>
</text>
Run Code Online (Sandbox Code Playgroud)

css svg

5
推荐指数
1
解决办法
5502
查看次数

在d3.js中将div添加到圆圈

我有一个d3.js的甜甜圈,我想在它的中心放一些信息.我可以追加文本元素,但我想在那里放一个格式化的信息,所以我决定在mouseover上添加div:

$(".arc").on("mouseover",(function(){
d3.select("text").remove();
var appendingString="<tspan>"+cityName[$(this).attr("id")]+"</tspan> <tspan>"+$(this).attr("id")+"%</tspan>";
group
.append("text")
.attr("x",-30)
.attr("y",-10)
.text(appendingString);
})); 
Run Code Online (Sandbox Code Playgroud)

由于某种原因div成功添加了我需要但不显示的信息.追加它的正确方法是什么,还是有其他替代方法?完整脚本如果需要:

<script>
var cityNames=["?????????","???????","?????","???????"];
var cityPercentage=[50,30,20,10];
var width=300,
    height=300,
    radius=100;
var color=d3.scale.linear()
            .domain([0,60])
            .range(["red","blue"]);
var cityDivision = d3.select("#cities")
            .append("svg")
            .attr("width", width)
            .attr("height", height)
            .attr("class","span4");
var group=cityDivision.append("g")
.attr("transform","translate(" + width / 2 + "," + height / 2 + ")");
var arc=d3.svg.arc()
    .innerRadius(radius-19)
    .outerRadius(radius);
var pie= d3.layout.pie()
    .value(function(d){return d;});
var cityName={
    50:"?????????",
    30:"???????",
    20:"?????",
    10:"???????"
}
var arcs=group.selectAll(".arc")
    .data(pie(cityPercentage))
    .enter()
    .append("g")
    .attr("class","arc")
    .attr("id",function(d){return d.data;});
    arcs.append("path")
    .attr("d",arc)
    .attr("fill",function(d){return color(d.data);});
//?????????? …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery d3.js

4
推荐指数
1
解决办法
1677
查看次数

标签 统计

svg ×9

javascript ×6

css ×3

d3.js ×3

html ×3

html5 ×3

text ×3

animation ×1

imagemagick ×1

jquery ×1

word-wrap ×1