gpt4 book ai didi

javascript - 隐藏 Raphael JS Freetransform 上的 handle ,但继续拖动?

转载 作者:行者123 更新时间:2023-11-29 09:55:48 25 4
gpt4 key购买 nike

您好,我正在开发一个需要使用 Raphael JS 和插件 Raphael.Freetransform 的新项目。到目前为止,该插件运行得非常好并且非常流畅。但是,通过使用 hideHandles() 方法,它似乎也禁用了对对象的任何形式的拖动。

这是错误还是设计选择?隐藏句柄后是否需要重新启用拖动元素?我试过设置。为了在不使用 Freetransform 插件的情况下使元素可拖动,我需要做什么特别的事情吗?

这是我的代码:

paper = new Raphael("container", "1680", "1005");
setA = paper.set();
circle = paper.circle(50, 50, 50);
circle.attr("fill", "#f00");
circle.attr("stroke", "#000");
notif = paper.circle(50, 50, 50);
notif.attr({ "fill": "r(0.5, 0.5) #fff-#f00", "fill-opacity": 1 });
lbl = paper.text(50, 50, "Label").attr({fill: '#000000'});
setA.push(circle);
setA.push(notif);
setA.push(lbl);

setA.click(function(){
console.log('clicked');
});

setA.hover(
// over //
function (){ console.log('over'); },
// out //
function (){ console.log('out'); }
);

setA.drag(
//onmove
function(){
console.log('object moving');
},
//onstart
function(){
console.log('start drag');
},
//onend
function(){
console.log('end drag');
}
);

ft = paper.freeTransform(setA, { drag: true, keepRatio: true, draw: [ 'bbox', 'circle' ] }, function(ft, events) { /*console.log(ft.attrs);*/ } );

$('#guideBtn').click(function(){
if ($('#guideBtn').text().indexOf('Show') > -1){ ft.showHandles(); $('#guideBtn').text('Hide Guide'); }
else{ ft.hideHandles(); $('#guideBtn').text('Show Guide'); }
});

这里是自由变换工具的链接:https://github.com/ElbertF/Raphael.FreeTransform/

如您所见,我只是使用按钮的点击处理程序来显示和隐藏 handle 。在此之后我需要额外的步骤吗?

提前致谢,康纳

最佳答案

想通了。您可以简单地调用 {drag: true|false}、{scale: true|false} 和 {rotate: true|false} 的组合,而不是调用 .hideHandles() 和 .showHandles()

例如

circle.setOpts({drag:'self', scale:false, rotate:false, draw:false});
circle.setOpts({drag:'self', scale:true, rotate:true, draw: [ 'bbox', 'circle' ]});

关于javascript - 隐藏 Raphael JS Freetransform 上的 handle ,但继续拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com