Tôi đang cố thực hiện một số sửa đổi đối với đường dẫn, được xác định bằng D3 theo lập trình. Sự thay đổi tôi muốn thực hiện khá đơn giản, thay đổi độ mờ của đường dẫn. Vấn đề tôi có là trong khi con đường chính nó sẽ thay đổi, điểm đánh dấu kết thúc không, và tôi không hoàn toàn chắc chắn làm thế nào để làm cho nó làm như vậy.Sửa đổi độ mờ đường dẫn SVG và nó là điểm đánh dấu
Các marker được định nghĩa như vậy:
// define arrow markers for graph links
svg.append('svg:defs').append('svg:marker')
.attr('id', 'end-arrow')
.attr('viewBox', '0 -5 10 10')
.attr('refX', 6)
.attr('markerWidth', 3)
.attr('markerHeight', 3)
.attr('orient', 'auto')
.append('svg:path')
.attr('d', 'M0,-5L10,0L0,5')
.attr('fill', '#CCCCCC');
Đường dẫn:
// Create the links between the nodes
var links = svg.append("g")
.selectAll(".link")
.data(data.links)
.enter()
.append("path")
.attr("class", "link")
.attr("d", sankey.link())
.style('marker-end', "url(#end-arrow)")
.style("stroke-width", function (d) { return Math.max(1, d.dy); })
.sort(function (a, b) { return b.dy - a.dy; });
Mã mà tôi sử dụng để thay đổi các đường dẫn, mà không cập nhật các dấu hiệu:
d3.selectAll("path.link")
.filter(function (link) {
// Find all the links that come to/from this node
if (self.sourceLinksMatch(self, link, node)) {
return true;
}
if (self.targetLinksMatch(self, link, node)) {
return true;
}
return false;
})
.transition()
.style("stroke-opacity", 0.5);
Có ai có thể đề xuất những gì tôi có thể cần thay đổi để sửa đổi kiểu điểm đánh dấu không?
Cảm ơn
không hoạt động nếu bạn có nhiều đường dẫn với cùng một điểm đánh dấu được xác định trước – SumNeuron
'" opacity "' có thể ghi đè cả hai "và" đột quỵ "opacities. Nó là an toàn hơn để thiết lập '" stroke-opacity "' và '" fill-opacity "' riêng biệt. –