gpt4 book ai didi

javascript - 在 RaphaelJS 中画一条连接线

转载 作者:可可西里 更新时间:2023-11-01 01:28:58 24 4
gpt4 key购买 nike

我将如何在 Raphael 中绘制一条连接线,其中 mousedown 启动线的起点,mousemove 移动终点而不移动起点,mouseup 保持原样?

最佳答案

查看 http://www.warfuric.com/taitems/RaphaelJS/arrow_test.htm 的来源.

这可能会让您入门。

编辑

我举了一个简单的例子,可以让您抢先一步(不过仍然需要做一些工作:验证参数、添加注释等)。

注意:路径还是要适配raphael.js

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="edit-Type" edit="text/html; charset=utf-8">


<!-- Update the path to raphael js -->
<script type="text/javascript"src="path/to/raphael1.4.js"></script>
<script type='text/javascript'
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

<style type='text/css'>
svg {
border: solid 1px #000;
}
</style>

</head>
<body>
<div id="raphaelContainer"></div>
<script type='text/javascript'>
//<![CDATA[

function Line(startX, startY, endX, endY, raphael) {
var start = {
x: startX,
y: startY
};
var end = {
x: endX,
y: endY
};
var getPath = function() {
return "M" + start.x + " " + start.y + " L" + end.x + " " + end.y;
};
var redraw = function() {
node.attr("path", getPath());
}

var node = raphael.path(getPath());
return {
updateStart: function(x, y) {
start.x = x;
start.y = y;
redraw();
return this;
},
updateEnd: function(x, y) {
end.x = x;
end.y = y;
redraw();
return this;
}
};
};



$(document).ready(function() {
var paper = Raphael("raphaelContainer",0, 0, 300, 400);
$("#raphaelContainer").mousedown(

function(e) {
x = e.offsetX;
y = e.offsetY;
line = Line(x, y, x, y, paper);
$("#raphaelContainer").bind('mousemove', function(e) {
x = e.offsetX;
y = e.offsetY;
line.updateEnd(x, y);
});
});

$("#raphaelContainer").mouseup(

function(e) {
$("#raphaelContainer").unbind('mousemove');
});
});
//]]>
</script>
</body>
</html>

参见示例:http://jsfiddle.net/rRtAq/9358/

关于javascript - 在 RaphaelJS 中画一条连接线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3582344/

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