$ (window). Load (function () {var p = raphael (' canvas ');p. cx = 0, p.cy = 0, p.cs = 1;p.canvas.style.backgroundColor = ' #008080 '; $ (window). Resize ( function () {p.setsize ($ (' #canvas '). Width (), $ (' #canvas '). Height ());}); $ (P.canvas). On (' MouseDown ', function (e) {if (E.target == p.canvas) {this.ox = e.offsetx;this.oy = e.offsety;}}); $ (P.canvas). On (' MouseMove ', function (e) {if (e.target == p.canvas && this.ox) {var size = p.getsize ();p .cx = p.cx - (e.offsetX - this.ox) / p.cs;p.cy = p.cy - (E.offsety - this.oy) / P.cs;p.setviewbox (P.cx, p.cy, size.width / p.cs, size.height / p.cs); This.ox = e.offsetx;this.oy = e.offsety;}}); $ (P.canvas). On (' MouseUp ', function (e) {if  (e.target == p.canvas && this.ox) {delete this.ox;delete This.oy;}}); $ (P.canvas). On (' MouseWheel ', function (e) {if (E.target == p.canvas) {var Size = p.getsize ();p. Cs2 = e.originalevent.wheeldelta > 0 ? p.cs * 1.125 : p.cs / 1.125;p.cx = p.cx + (e.offsetx / &NBSP;P.CS&NBSP;-&NBSP;E.OFFSETX&NBSP;/&NBSP;P.CS2);p .cy = p.cy + (e.offsetY / P.CS&NBSP;-&NBSP;E.OFFSETY&NBSP;/&NBSP;P.CS2);p. Cs = p.cs2;p.setviewbox (p.cx, p.cy, Size.width / p.cs, size.height / p.cs);} Return false;}); for (var i = 0; i < 200; i++) {var r = Math.random;p.rect (700 * r (), 500 * r (), 100 * r (), 100 * r ()). attr (' Fill ', ' #00ffff ');}});
Rapha?l mouse drag, Wheel zoom JS code