<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
>
</
script
>
<
script
src
=
</
script
>
</
head
>
<
body
>
<
center
>
<
h1
style
=
"color: green;"
>
Geeksforgeeks
</
h1
>
<
h3
>D3.js | zoom.scaleExtent() Function</
h3
>
<
svg
height
=
"200px"
width
=
"400px"
>
<
g
id
=
"main"
transform
=
"translate(25, 25) scale(0.25)"
></
g
>
</
svg
>
<
script
>
var svg = d3.select("#main");
svg.append(
"rect").attr({"x":0, "y":0, "height":100, "width":100, "fill":"red"})
svg.append(
"rect").attr({"x":100, "y":100, "height":100, "width":100, "fill":"blue"})
svg.append(
"rect").attr({"x":0, "y":100, "height":100, "width":100, "fill":"green"})
svg.append(
"rect").attr({"x":100, "y":0, "height":100, "width":100, "fill":"purple"})
var zoom = d3.behavior.zoom().on("zoom", function(){
var t = d3.event.translate;
var s = d3.event.scale;
svg.attr(
"transform", "translate("+t[0]+", "+t[1]+") scale("+s+")")
})
.scaleExtent([1, 10]).scale(1).translate([0, 0])
d3.select("svg").call(zoom)
d3.selectAll("rect").on("mousedown", function(){
var scale = Math.random()*3;
var translate = [(Math.random()*100, Math.random()*100)]
zoom.scale(scale);
zoom.translate(translate);
//new transition
var T = svg.transition().duration(5000)
zoom.event(T);
})
</
script
>
</
center
>
</
body
>
</
html
>