The d3.mouse() function in D3.js is used to return the x-coordinate and y-coordinate of the current event. If the event is clicked then it returns the x and y position of the click.
Syntax:
d3.mouse(container);
Parameters: This function accepts a single parameter as mentioned above and described below:
- container: It is the name of the container or the HTML tag to which the event is attached.
Return Values: It returns the array of coordinates x and y.
Below examples illustrate the D3.js mouse() function In JavaScript:
Example1:
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 mouse() Function</ title > </ head > < style > div { width: 200px; height: 200px; background-color: green; } </ style > < body > < div ></ div > < script src = </ script > < script src = </ script > < script > let btn = document.querySelector("div"); var div = d3.select("div"); div.on("click", createDot); function createDot() { // Using d3.mouse() function let pos = d3.mouse(this); console.log(pos); } </ script > </ body > </ html > |
Output:
Example 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 mouse() Function</ title > </ head > < style > .div { width: 200px; height: 200px; background-color: green; overflow: hidden; } div { background-color: red; width: 10px; height: 10px; } </ style > < body > < h2 >click on the box</ h2 > < div class = "div" ></ div > < script src = </ script > < script src = </ script > < script > let btn = document.querySelector("div"); var div = d3.select("div"); div.on("click", createDot); function createDot() { // Using d3.mouse() function let pos = d3.mouse(this); console.log(pos); d3.select("div") .append("div") .style("background-color", "white") .style("position", "absolute") .style("margin-left", `${pos[0] - 10}px`) .style("margin-right", `${pos[0] - 10}px`) .style("margin-top", `${pos[1] - 10}px`) .style("margin-bottom", `${pos[1] - 10}px`); } </ script > </ body > </ html > |
Output:
Before clicking the box:
After clicking the box: