UPDATE拉斐爾Freetransform顯示/ hidehandle,對象是正面和對象可去除
我使用拉斐爾Freetransform顯示來自用戶上傳IMGS,
搜索了很久,該怎麼辦下面的東西
1)click
toggle showhandle``hidehandle
? 已解決
2)每次創建新的Freetransform對象時都添加一個新按鈕。
- 單擊按鈕對象可以刪除。
3)聖拉斐爾對象可以使用toFront
,Freetransform如何做到這一點
使用聖拉斐爾Freetransform基本編碼:在畫布
var paper = Raphael($('.canvas')[0], 1000, 1000);
var r_img = paper.image('img/path'+file_type, 100, 100, 200, 200);
paper.freeTransform(r_img).setOpts({drag:'self', scale:true, rotate:true, draw:[ 'bbox' ], keepRatio: true});
用戶上傳後2張圖片時,輸出源代碼將成爲:
<image></image>
<image></image>
// 1st image handle
<path></path>
<circle></circle>
<path></path>
<circle></circle>
<path></path>
<rect></rect> // x8
// 2nd image handle
<path></path>
<circle></circle>
<path></path>
<circle></circle>
<path></path>
<rect></rect> // x8
解決問題2)
如果我創建一個div標籤是按鈕,我找不到1組(圖像和句柄)被選中。
解決問題3)
如果click
,則image
可以使用toFront
resoure,但手柄如何成爲前呢?
img.onload = function(){
var img_width = this.width, img_height = this.height;
var img_scale = img_width/200;
var new_height = img_height/img_scale;
var ft, r_img = paper.image('img/'+path, 0, 0, 200, new_height), dragged = false;
r_img.click(function(){
// Toggle handles on click if no drag occurred
if(!dragged){
if(ft.handles.center === null){
ft.showHandles();
console.log('front');
r_img.toFront();
//r_img.remove();
}else{
ft.hideHandles();
}
}
});
ft = paper.freeTransform(r_img, {draw:[ 'bbox' ], keepRatio: true, size: 3 }, function(ft, events){
if(events.indexOf('drag start') !== -1){
dragged = false;
}
if(events.indexOf('drag') !== -1){
dragged = true;
}
});
};
img.src = 'img/'+path;
謝謝,這將是巨大的,只是更新的問題。 – vibskov 2013-03-26 17:09:37
我用一個例子更新了我的答案。 – 2013-03-26 21:45:47
謝謝,我使用這個,但不能隱藏(切換)句柄,http://jsfiddle.net/Ls7FS/2添加'conosle.log'' ft.handles.center'總是'null'(在第一次加載) – vibskov 2013-03-27 10:51:31