當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


d3.js clientPoint()用法及代碼示例

d3.clientPoint()用於返回附加到特定容器或HTML標簽的特定事件的x坐標和y坐標。

用法:

d3.clientPoint(container, event);

參數:該函數接受上麵提到和下麵描述的兩個參數。

  • container:容器可以是HTML或SVG容器。
  • event:該事件可以是任何事件,例如觸摸,單擊,懸停等。

返回值:它返回坐標x和y的數組。

以下示例說明了JavaScript中的D3.js clientPoint()函數



範例1:

HTML

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
        <meta charset="UTF-8" /> 
        <meta
            name="viewport"
            path1tent="width=device-width,  
                       initial-scale=1.0"/> 
        <title>D3.js clientPoint() Function</title> 
    </head> 
    <style> 
        div { 
            width:200px; 
            height:200px; 
            background-color:green; 
        } 
    </style> 
    <body> 
        <div></div> 
        <script src= 
"https://d3js.org/d3.v4.min.js"> 
        </script> 
        <script src= 
"https://d3js.org/d3-selection.v1.min.js"> 
        </script> 
        <script> 
            let btn = document.querySelector("div"); 
            btn.addEventListener("click", createDot); 
            var div = d3.select("div").node(); 
            function createDot(event) { 
                let pos = d3.clientPoint(div, event); 
                console.log(pos); 
            } 
        </script> 
    </body> 
</html>

輸出:單擊綠色框後,輸出將顯示在控製台窗口中。

範例2:在發生點擊事件的地方會創建白點。

HTML

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
        <meta charset="UTF-8" /> 
        <meta
            name="viewport"
            path1tent="width=device-width,  
                       initial-scale=1.0"/> 
        <title>D3.js clientPoint() Function</title> 
    </head> 
    <style> 
        svg { 
            width:200px; 
            height:200px; 
            background-color:green; 
        } 
    </style> 
    <body> 
        <svg></svg> 
        <script src= 
"https://d3js.org/d3.v4.min.js"> 
        </script> 
        <script src= 
"https://d3js.org/d3-selection.v1.min.js"> 
        </script> 
        <script> 
            let btn = document.querySelector("svg"); 
            btn.addEventListener("click", createDot); 
            var svg = d3.select("svg").node(); 
            function createDot(event) { 
                let pos = d3.clientPoint(svg, event); 
                console.log(pos); 
                d3.select(svg).append("circle").attr("fill", "white") 
                  .attr("r", 5).attr("cx", pos[0]).attr("cy", pos[1]); 
            } 
        </script> 
    </body> 
</html>

輸出:

在單擊SVG容器之前:

單擊SVG容器後




相關用法


注:本文由純淨天空篩選整理自tarun007大神的英文原創作品 D3.js clientPoint() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。