Tôi khá mới với D3.js và tôi đã chơi xung quanh với bố cục lực. Một trong những điều tôi đã thử là đặt nhãn lên các liên kết.Bố cục lực lượng D3.js - vị trí nhãn cạnh/xoay
Một cách để thực hiện điều này là bằng cách thêm svg:text
và tính theo cách thủ công translate
& rotate
, hoạt động tốt với đường thẳng. Tuy nhiên, trong trường hợp khi liên kết là svg:path
(ví dụ: cung), điều này không hoạt động như mong đợi. Trong những trường hợp này, svg:textPath
là giải pháp được đề xuất.
Trong this demo, bạn có thể thấy triển khai đơn giản thêm nhãn vào liên kết thông qua svg:textPath
. Vấn đề duy nhất với nó là, trong trường hợp khi nguồn được đặt ở bên phải của mục tiêu, văn bản được trả về theo hướng ngược lại (từ quan điểm của chúng ta, nó vẫn đúng từ quan điểm của đường dẫn). Câu hỏi của tôi là, làm thế nào để đối phó với điều này?
Giải pháp "chỉ" Tôi đưa ra là, tự đổi nguồn và nhắm mục tiêu trong trường hợp được mô tả ở trên. Here, bạn có thể thấy rằng nó gần như hoạt động.
Trong trạng thái khi hoán đổi xảy ra, bạn cũng có thể thấy hồ quang lật sang một bên khác, mà không nhìn bên phải. :(
Bạn không thể chỉ định hướng văn bản cho 'textPath' - văn bản luôn theo hướng của đường dẫn. Vì vậy, giải pháp bạn có là giải pháp khả thi duy nhất. –