<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                本章討論在力學圖中常用到的事件( Event ),然后對【[進階 - 第 2.0 章](http://www.ourd3js.com/wordpress/?p=555)】的人物關系圖進行改進,使用戶能夠固定拖拽的對象。 在【[入門 - 第 9.2 章](http://www.ourd3js.com/wordpress/?p=196)】和【[進階 - 第 2.0 章](http://www.ourd3js.com/wordpress/?p=555)】中,都用到了以下代碼: ~~~ force.on("tick", function(){ }); ~~~ 這里的 force 是之前代碼中定義的布局( Layout ),tick 表示當運動進行中每更新一幀時。這是力學圖中最常使用的事件,用于設定力學圖每一幀是如何更新的。除此之外,還有一些其他常用的事件。 ## 1. 布局的事件 代碼中,假設定義如下的布局: ~~~ var force = d3.layout.force() .size([width,height]) .linkDistance(200) .charge(-1500); ~~~ 力學圖布局 force 本身的事件,D3 提供了3個,分別為 start ,end,tick。在寫代碼時,可形如: ~~~ //力學圖運動開始時 force.on("start", function(){ console.log("開始"); }); //力學圖運動結束時 force.on("end", function(){ console.log("結束"); }); //力學圖每一幀 force.on("tick", function(){ console.log("進行中"); }); ~~~ 各事件發生時,就會執行相應的代碼。 ## 2. 拖拽的事件 在【[入門 - 第 9.2 章](http://www.ourd3js.com/wordpress/?p=196)】和【[進階 - 第 2.0 章](http://www.ourd3js.com/wordpress/?p=555)】中,都出現了以下代碼: ~~~ .call(force.drag); ~~~ 即設定當拖拽時調用函數 force.drag()。D3 中提供了3種拖拽事件:dragstart、dragend、drag。 ~~~ var drag = force.drag() .on("dragstart",function(d,i){ console.log("拖拽狀態:開始"); }) .on("dragend",function(d,i){ console.log("拖拽狀態:結束"); }) .on("drag",function(d,i){ console.log("拖拽狀態:進行中"); }); ~~~ 上面代碼中,分別定義了三種事件后,將此拖拽函數賦值給變量 drag,在調用時,只要使用: ~~~ .call(drag); ~~~ 即可。 ## 3. 頂點的固定 使用布局轉換數據之后,頂點有一個屬性 fixed 。當這個值為 true 時,頂點就是固定不動的;為 false 時,它就是運動的。默認是 false 的。如果要改進【[進階 - 第 2.0 章](http://www.ourd3js.com/wordpress/?p=555)】的代碼,使得用戶能夠任意固定和解鎖頂點,可添加代碼如下:當拖拽開始時,被拖拽頂點設定為固定的: ~~~ var drag = force.drag() .on("dragstart",function(d,i){ d.fixed = true; //拖拽開始后設定被拖拽對象為固定 label_text_2.text("拖拽狀態:開始"); }) ~~~ 當鼠標雙擊頂點時,對頂點解鎖: ~~~ nodes_img.on("dblclick",function(d,i){ d.fixed = false; }) ~~~ ## 4. 結果 在左上角添加了標簽文字,請好好體會一下各事件發生的狀況。 拖拽后頂點會固定,雙擊頂點能夠解鎖。 完整代碼請點擊下面鏈接,右鍵選擇“查看網頁源代碼”: [http://www.ourd3js.com/demo/J-2.1/relationforce.html](http://www.ourd3js.com/demo/J-2.1/relationforce.html) 謝謝閱讀。 文檔信息 - 版權聲明:署名(BY)-非商業性(NC)-禁止演繹(ND) - 發表日期:2014年11月08日 - 更多內容:[OUR D3.JS - 數據可視化專題站](http://www.ourd3js.com/) 和 [CSDN個人博客](http://blog.csdn.net/lzhlzz) - 備注:轉載請注明出處,謝謝
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看