首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉斐尔JS。两个形状之间的橡皮筋路径

问拉斐尔JS。两个形状之间的橡皮筋路径
EN

Stack Overflow用户
提问于 2011-12-07 04:45:45
回答 1查看 1.8K关注 0票数 0

任何人都有在拉斐尔的两个形状之间绘制橡皮筋样式路径的示例代码。

我在How to draw a vector path progressively? (Raphael.js)上看到了一些关于渐进式绘制路径的问题

但我的要求是能够单击一个形状并将鼠标移动到另一个形状,当鼠标移动时,应该有一条线路径跟随鼠标,就像橡皮筋一样。一旦在第二个形状上单击,就必须锁定线条路径。

我试过用拉斐尔的Joint.js http://www.jointjs.com/,但它可以画线,但不能交互。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-08 16:12:26

以下是让您开始使用的基本代码:

代码语言:javascript
复制
var w = window.innerWidth;
var h = window.innerWidth;
var paper = Raphael(0, 0, w, h);
var nodes = paper.set();

var circle1 = paper.circle(w/8, h/3, w/16)
    .attr({fill: "#000"})
    .click(line);
var circle2 = paper.circle(w - w/8, h/3, w/16).attr({fill: "#000"})
    .attr({fill: "#000"})
    .click(line);


function line() {
  var band = paper.path("M 0 0").attr({"stroke-width": 5})
  band.node.style.pointerEvents = "none";
  dimensions = this.getBBox();
  var x = dimensions.x + dimensions.width/2;
  var y = dimensions.y + dimensions.height/2;
  if (!window.onmousemove) {
    window.onmousemove = function(e){
        band.attr({path: "M " + x + " " + y + "L " + e.x + " " + e.y});
    }
  }
  else {
     window.onmousemove = null;
  }
}

您可以在此处查看演示:http://jsfiddle.net/57myn/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8406598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档