【发布时间】:2015-03-12 10:39:46
【问题描述】:
我正在尝试创建像 Seats.io 这样的交互式座位布局。但是我不需要确切的功能,只需要一些东西,例如:
- 在屏幕上的任意位置绘制座位
- 从一个点到另一个点绘制座位列表
- 从一个鼠标单击点绘制到另一个鼠标单击点时,座椅悬停为圆形
在对 Jquery 和raphaeljs 进行了大量研究之后,我决定开始使用 raphaeljs。我对矢量图形完全陌生。所以很明显,我可能会遗漏一些东西。我已经按照fiddle 画了一条直线。我还创建了另一个脚本来在窗口的任何位置绘制圆圈(圆圈表示座位)以下是脚本
window.onload = function () {
var height = $(document).outerHeight(true);
var width = $(document).width();
var radius = 10;
var paper = Raphael(0, 0, width, height);
var i = 0;
$(document).click(function (e) {
i = i + 1;
var x = e.pageX;
var y = e.pageY;
var seat = paper.circle(x, y, radius)
.attr({stroke: "none", fill: "#f00", opacity: .4})
.data("i", i);
seat.mouseover(function () {
this.attr("opacity", 1);
});
seat.mouseout(function () {
this.attr("opacity", .4);
});
});
}
使用上面的脚本,我可以在我的屏幕上绘制圆圈(座位)。现在基于小提琴示例线是使用“路径”绘制的,因此是否可以在每条路径上加载圆圈并将它们一个接一个地绘制为连续的圆圈线,还是我必须采取任何不同的方法。
另外补充一点,Seats.io 是否有任何开源项目或代码
任何帮助将不胜感激
【问题讨论】:
-
不太清楚你在问什么,但如果你沿着raphaeljs.com/reference.html#Element.getPointAtLength在某些步骤放置一个圆圈,getPointAtLength 会有所帮助吗?
标签: javascript jquery svg raphael