如何将angularjs动态文本输入与d3js相结合,创建svg圆圈进行过滤
how to combine angularjs dynamic text input with d3js-created svg circles for filtering
我有一个有很多圆圈的d3js气泡图。它们有一个对应于城市名称的id
。
var cities = ["Toronto", "London", "Paris"];
我有一个html格式的标准CCD_ 2框。
<input id="searchBox" onchange="checkFilled()" />
checkFilled()
功能:
function checkFilled() {
var inputVal = document.getElementById("searchBox").value;
var circleId = d3.select("#" + inputVal + "");
cities.forEach(function ( city ) {
if (inputVal == "") {
circleId.style("fill", "white");
}
else if ( inputVal == city ){
circleId.style("fill", "red");
}
})
}
这很有效(填充被更改(,但很笨拙:区分大小写,需要点击回车键,删除文本时不会恢复。
我的目标是让它充满活力。填充应该随着文本的实时添加/删除而变化,就像下面的例子一样:http://jsfiddle.net/sravikiran/eBcaB/5/light/其中演示了使用angular js输入对html表进行排序。
理想情况下,排序行为可以在d3js或javascript代码创建的svg元素上复制。
我的2美分
<input id="searchBox" onkeyup="checkFilled()" />
function checkFilled() {
var inputVal = document.getElementById("searchBox").value;
var sel = d3.selectAll("#" + circlesContainer + "").filter(function(d) { return this.id.match(new RegExp('^'+inputVal, 'i')); });
d3.selectAll("#" + circlesContainer).style('fill', 'white');
sel.attr('fill', 'red');
}
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 使用SVG和JavaScript创建波浪动画
- 使用grunt模块创建svg精灵
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- 是否可以在不创建svg对象的情况下创建捕捉元素?[snap.svg]
- 动态创建foreignGroup并将其添加到svg中有什么问题
- 在HTML中使用javascript动态创建SVG元素
- Svg(snapsvg)创建了一个语音泡沫
- 如何在HTML中创建一个信息框,显示与悬停SVG路径相关的信息
- jQuery SVG创建折线,firefox错误
- 如何在美国的 SVG 地图上创建各州之间的统一间隙
- 创建 SVG 和矩形不起作用
- 在 d3.js 中创建嵌套的 SVG 节点
- 使用 d3.js 为 svg 图表创建标记
- 在 ASP.NET 页面中内联编码 SVG 会导致 SVG JavaScript 创建 SVGPoint();函数中断
- 如何在 d3 和 SVG 中创建着色路径
- 使用Snap.svg创建多行文本
- 用SVG创建一个表
- SVG:创建稍微不同元素的紧凑方式