你好我是新手使用raphael javascript库我试图创建一个简单的拖放;能够将一个克隆形状从画布外部拖到画布R中,我希望能够删除所选克隆,如果用户点击它(用户按删除选定的克隆和克隆被删除)我也想复制克隆并粘贴它。这是我的代码:
<html>
<head>
<title>Raphael Play</title>
<script type="text/javascript" src="raphael.js"></script>
<script type="text/javascript" src="jquery.contextMenu.r2.js"></script>
<style type="text/css">
#canvas_container {
width: 500px;
border: 1px solid #aaa;
}
</style>
<script>
window.onload = function() {
var nowX, nowY, w = 500, h=400, r=30, R = Raphael("canvas_container", w, h),
c = R.circle(100, 100, r).attr({
fill: "hsb(.8, 1, 1)",
stroke: "none",
opacity: .5,
cursor: "move"
});
var clone=c.clone();
var start = function () {
// storing original coordinates
this.ox = this.attr("cx");
this.oy = this.attr("cy");
this.attr({opacity: 1});
},
move = function (dx, dy) {
// move will be called with dx and dy
// restrict movement of circle to within boundaries
if (this.ox + dx <= w - r &&
this.oy + dy <= h - r &&
this.ox + dx >= 0 + r &&
this.oy + dy >= 0 + r)
{
this.attr({cx: this.ox + dx, cy: this.oy + dy});
} // else nothing
},
up = function () {
// restoring state
this.attr({opacity: .5});
};
clone.drag(move, start, up);
};
// Create Context Menu
</script>
</head>
<body>
<div id="canvas_container"></div>
</body>
答案 0 :(得分:0)
每个拉斐尔的形状都需要在画布内;它不能在外面。您需要使画布填充更大的区域以包含其他形状,可能还有样式的帮助。我不确定它是否能够很好地制作多张拉斐尔画布,因为你需要在其他画布内创建一个新的拉斐尔形状,使用其他形状的属性。你可以做到,但我不会这样做。另外,请小心使用带有JavaScript事件的删除按钮,因为它用于浏览器导航。
答案 1 :(得分:0)
我希望能够在用户点击它时删除所选克隆(用户按选定克隆上的删除并删除克隆)
我还想复制克隆并粘贴它。
我建议使用背景图片&amp; PHP ajax处理事件(onkeypress)。然后uplaod改变了背景图像&amp; make jquery.attr(“style”,“back.jpg”)改变
BTW,谢谢你,例如,我在这里使用它:
答案 2 :(得分:0)
这是拖动对象的一个很好的简单起点。看一下页面源代码。我希望这可以帮助你。