在链接d3强制布局中添加和删除类
Add and remove the class in the link d3 force layout
如何在强制布局的链接中添加和删除类。考虑一下如果我的d.source.x == d.target.x
,那么我必须添加类,否则我必须从链接中删除该类。
path.attr("d", function(d) {
var x1 = d.source.x,
y1 = d.source.y,
x2 = d.target.x,
y2 = d.target.y,
dx = Math.abs(x2 - x1),
dy = Math.abs(y2 - y1),
dr = dx * dx + dy * dy;
var rotation = 0;
if (x1 === x2) {
var dr = Math.sqrt(dx * dx + dy * dy) / 1.8; // note that this is always equal to Math.abs(dy)
var sweep = 1;
if (y1 > y2) {
sweep = 0;
}
return "M" +
d.source.x + "," + d.source.y +
"A" + dr + "," + dr +
" 0, 0" + sweep + " " +
d.target.x + "," + d.target.y;
}
return "M" +
d.source.x + "," +
d.source.y + "A" +
dr + "," + dr + " 0 0,1 " +
d.target.x + "," +
d.target.y;
});
使用d3类运算符。
if(d.source.x == d.target.x){
d3.select(this).classed("your-class-name",true); //Adding class
} else{
d3.select(this).classed("your-class-name",false); //Removing class
}
或者简称d3.select(this).classed("your-class-name",d.source.x == d.target.x);
有关更多详细信息,请参阅jaketrent.com 上的D3类操作
您可以简单地使用jquery选择器来实现这一点——
假设你的链接包含.link类,并且你想添加或删除任何其他类,例如"你的类",那么你可以简单地写,
if(d.source.x == d.target.x){
$(".link").addClass("your-class"); //Adding class
} else{
$(".link").removeClass("your-class"); //Removing class
}
D3只是一个简单的Javascript库,所以它完全支持jquery。
相关文章:
- 根据Select值添加/删除表行
- 添加/删除类淡入淡出不起作用
- p5.js声音库:如何添加/删除p5.第5页中的短语().零件()
- 在django表单集中添加/删除表单的Javascript
- 添加/删除子元素
- 添加/删除/更改输入文本的部分值
- jQuery - 添加删除类 - 设置输入值
- 向具有唯一Id的表添加/删除行
- DateTimePicker:函数从minDate maxDate添加删除日期
- 由 JavaScript 控制的 CSS3 单向转换在按顺序添加/删除类时不起作用
- 添加/删除类在 Chrome 中对我不起作用
- JQuery 测试元素是可见的还是隐藏的,然后添加删除类
- Jquery切换和添加/删除
- 克隆字段上的“添加-删除”按钮
- (X-Editable)与(Select2标签)不工作,可以't填充当前标签并跟踪添加/删除的标签
- 添加/删除要与Jquery进行比较的产品
- 添加/删除类并使用Cookie记住所选内容
- 如何使用延迟添加/删除类
- 如何根据数组内容添加/删除数组中的元素
- 单击单选按钮,添加/删除表单元素的类