Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <title>
- </title>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.4.1/snap.svg-min.js"></script>
- </head>
- <body>
- <script>
- var s = Snap(600,500);
- var rect = s.rect(0,0,40,40);
- var rectr = s.rect(400,90,50,50);
- var b=0;
- var c=0;
- var isInter;
- var move = function(dx,dy, x, y, event) {
- var b1 = rect.getBBox();
- var b2 = rectr.getBBox();
- isInter = Snap.path.isBBoxIntersect(b1, b2);
- if (isInter==false) {
- b=dx;
- c=dy;
- }
- if (isInter==true) {
- if (b1.y2==b2.y&&b1.x2==b2.x||b1.x==b2.x2&&b1.y2==b2.y){c=b2.y-b1.h, b=dx
- }
- else if (b1.x==b2.x2&&b1.y==b2.y2||b1.x2==b2.x&&b1.y==b2.y2){c=b2.y2; b=dx;}
- else if (b1.y2==b2.y){(dy>=b2.y-b1.h) ? (c=b2.y-b1.h, b=dx): (b=dx, c=dy);}
- else if (b1.y==b2.y2){(dy<=b1.y) ? (c=b2.y2, b=dx):(b=dx,c=dy);}
- else if (b1.x2==b2.x){(dx>=b1.x) ? (b=b2.x-b1.width, c=dy):(b=dx, c=dy);}
- else if (b1.x==b2.x2){(dx<=b1.x2) ? (b=b2.x2, c=dy):(b=dx, c=dy);}
- else {b=dx; c=dy;}
- }
- this.attr({
- transform: this.data('origTransform') + ((this.data('origTransform')) ? "t": "T") + [b,c]
- });
- }
- var start = function() {
- this.data('origTransform', this.transform().local );
- b=0;
- c=0;
- }
- rect.drag(move, start);
- circle.drag(move, start);
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement