2010-09-10 61 views
0

我正在使用Raphaël构建应用程序。我已经完成了我的矢量工作,现在我想要的是 - 我想放大矢量。我已经在其上实现了这个代码,但是当我缩小元素时,它的坐标也随之变化,这是我不想要的。使用Raphaël缩放问题

请帮我一把。提前致谢。

这里是我的代码:

var raphael=Raphael(20,20,500,500) 
    var dress=raphael.rect(50,30,200,300) 
    dress.attr(
    { 
     fill:"green", 
     stroke:"black", 
     opacity:"0.3" 

    } 
) 
    var mdipoint=raphael.circle(150,175,2).attr(
    { 
     fill:"black", 
     stroke:"black" 
    } 
) 
    dress.toFront() 

dress.mousemove(function(){ 

     var c= dress.scale(0.5) 
     //var x,y; 
     xx=event.pageX 
     yy=event.pageY 
     document.getElementById("t1").value=xx 
     document.getElementById("t2").value=yy 



    //  var x,y; 
    // x=event.pageX-150 
     // y=event.pageY-175 
     //document.getElementById("t1").value=x 
     //document.getElementById("t2").value=y 
     // alert(x+","+y) 



}) 

    dress.mousemove(function(event){ 

     var x,y; 
     x=event.pageX-70 
     y=event.pageY-50 
     document.getElementById("t1").value=x 
     document.getElementById("t2").value=y 

    }) 
    dress.mouseout(function(){ 

     document.getElementById("t1").value="" 
     document.getElementById("t2").value="" 
    }) 
+0

还有一个元素的大小如何改变,而其角点坐标不变? ----------你能否更详细地描述你想让你的结果看起来像什么? – 2010-10-07 02:32:13

回答

1

返回的东西到原来的大小,使用.scale(1)。该比例始终是相对于原始大小,而不是以前的大小。

所以收缩矩形鼠标悬停,然后将其返回到原来的大小,其原有的顶点坐标,使用类似:

dress.mouseover(function(){ 
      // Shrink rectangle 
     dress.scale(0.5) 
    }); 
    dress.mouseout(function(){ 
      // This will return it to original size 
     dress.scale(1); 
    }) 

simplified jsFiddle example

(你不需要为变量分配缩放操作)