亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

覆蓋 CSS 會導致 D3JS 樹路徑鏈接在節點展開或折疊后可見

覆蓋 CSS 會導致 D3JS 樹路徑鏈接在節點展開或折疊后可見

縹緲止盈 2023-03-24 14:39:23
我的代碼類似于此 plunkr中的示例。我試圖覆蓋 CSS 中的“.link”條目以下載為 SVG 文檔。.link {fill: none; stroke: #ccc; stroke-width: 1.5px;}問題是,一旦我這樣做,鏈接就不會在節點擴展或折疊時被刪除。我在原始代碼中注釋了類屬性,并在以下函數中插入了屬性:// Update the linksa|var link = svg.selectAll("path.link")   .data(links, function (d) {      return d.target.id;});// Enter any new links at the parent's previous position.link.enter().append("path", "g")   //.attr("class", "link")   .attr("stroke", "#ccc")   .attr("fill", "none")   .attr("stroke-width", "2px")   .attr("x", boxWidth )   .attr("y", boxHeight)   .attr("d", function (d) {     console.log(source)   var o = {       x: source.x0,       y: source.y0   };   return diagonal({       source: o,       target: o   });});關于為什么會發生這種行為的任何見解?
查看完整描述

1 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

您的原始代碼是:

var link = svg.selectAll("path.link")
  ...

link.enter()
  .append("path")
  .attr("class","link")
  ...

如果刪除附加項目的類,則每次繪制樹時,第一個選擇 ( link) 將為空(因為沒有類鏈接的路徑)。因此,將輸入數據數組中的任何鏈接。這就是代碼最初按預期工作的原因。但是,不會更新或退出任何鏈接,因為選擇中沒有要更新或退出的元素 - 選擇將始終為空。

如果這些是您唯一的路徑,您可以將選擇器更改為:

 var link = svg.selectAll("path")
   ...

例如。

或者,您可以保留與元素關聯的類,但刪除與該類關聯的任何 css 樣式。在任何一種情況下,您都可以應用樣式屬性.attr(),就像您所做的那樣。


查看完整回答
反對 回復 2023-03-24
  • 1 回答
  • 0 關注
  • 101 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號