Làm thế nào tôi sẽ vẽ một đường kết nối trong Raphael trong đó mousedown khởi tạo điểm bắt đầu của dòng, mousemove di chuyển điểm kết thúc mà không di chuyển điểm bắt đầu và mouseup rời khỏi nó vì nó ?Vẽ đường kết nối trong RaphaelJS
15
A
Trả lời
22
Hãy xem nguồn của http://www.warfuric.com/taitems/RaphaelJS/arrow_test.htm.
Điều này có thể giúp bạn bắt đầu.
EDIT
tôi đã thực hiện một ví dụ nhanh chóng mà sẽ cung cấp cho bạn một khởi đầu (vẫn cần một số công việc mặc dù: xác nhận các thông số, thêm ý kiến, vân vân).
Lưu ý: bạn vẫn phải thích ứng với đường dẫn đến Raphaël.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>
Xem ví dụ: http://jsfiddle.net/rRtAq/9358/
8
Bạn có thể thêm phương pháp line
của riêng bạn để lớp giấy ...
Raphael.fn.line = function(startX, startY, endX, endY){
return this.path('M' + startX + ' ' + startY + ' L' + endX + ' ' + endY);
};
... mà bạn có thể sử dụng sau này, giống như bất kỳ phương pháp đã biết nào khác từ lớp Giấy (vòng tròn, v.v.):
var paper = Raphael('myPaper', 0, 0, 300, 400);
paper.line(50, 50, 250, 350);
paper.line(250, 50, 50, 150).attr({stroke:'red'});
(thấy http://jsfiddle.net/f4hSM/)
Các vấn đề liên quan
- 1. Vẽ một đường cong hoàn hảo kết nối ba điểm
- 2. Cách vẽ đường sọc được kết nối trong OpenGL như thế này
- 3. Nhiều DB kết nối trong đường ray
- 4. Kết nối hai đoạn đường
- 5. Trích xuất dữ liệu đường dẫn từ bản đồ SVG để sử dụng trong RaphaelJs
- 6. Thư viện RaphaelJS để tìm giao lộ của các đường dẫn
- 7. Kineticjs vs Raphaeljs
- 8. JavaScript MVC Framework + raphaelJS
- 9. kết nối đường dẫn svg mượt mà
- 10. Không thể tạo kết nối đường thẳng trong JSPlumb
- 11. API Google Maps trong Javascript, Vẽ bán kính của một vòng kết nối?
- 12. Vẽ nhiều đường cong Bootstrap trong R
- 13. Vẽ một đường trong iPhone/iPad
- 14. Vẽ nhiều đường kẻ trong một BufferedImage
- 15. Pan/Zoom đau đớn chậm trong IE8 RaphaelJS
- 16. Richtextbox vẽ đường rtf
- 17. Vẽ đường lắp (OpenCV)
- 18. Đường dẫn vẽ Android
- 19. Xoay vòng RaphaelJS không hoạt động
- 20. Vẽ đường pixel trong html5 vải
- 21. Vẽ đường trên nhiều bảng trong Java
- 22. Cách vẽ đường kẻ trong UITableViewCell
- 23. Vẽ các đường với opengl trong Haskell
- 24. Đường kẻ mịn được vẽ trong canvas
- 25. Vẽ đường cong Hermite trong OpenGL
- 26. cho các đường nối hình chữ nhật
- 27. Sắp xếp số lượng lớn các ô và kết nối với các đường trong r
- 28. Kết nối Perl Kết nối
- 29. Biểu đồ đường SSRS không kết nối điểm dữ liệu
- 30. Vẽ một đường song song
Không cần cho 'new' trước Raphael. cũng như ở phía trước của dòng. –
Bạn nói đúng. Tôi đã xóa chúng. –
Fiddle không hoạt động –