javascript - 使用 JavaScript 捕捉 SVG 更改线 x,y 坐标

标签 javascript svg snap.svg

我想更改 svg 线的 x 和 y 坐标,但它自己不断地一遍又一遍地绘制多条线。这是结果:http://prntscr.com/6tdexj

如何每 1 秒只绘制一条线?

var paper = Snap('#one');

var timer = setInterval(function() {my_var()}, 1000);

function my_var() {
    x = Math.floor((Math.random() * 100) + 1);
    y = Math.floor((Math.random() * 100) + 1);

    console.log(x, y);

    // SVG LINE
    var line = paper.line(10, 10, x, y).attr({
        fill: 'f44',
        stroke: '#000'
    });
};

最佳答案

您将在每个间隔中创建一个新行。您应该创建一行并更改其属性:

var paper = Snap('#one');

var line = paper.line(10, 10, 10, 10)
  .attr({
  fill: 'f44',
  stroke: '#000'
})

setInterval(function() {
  var x = Math.floor((Math.random() * 100) + 1),
      y = Math.floor((Math.random() * 100) + 1);

  line.attr({ x2: x, y2: y })
}, 1000);

您可以通过调用 line.animate 而不是 line.attr 来使线条平滑过渡:

line.animate({ x2: x, y2: y }, 500);

http://jsbin.com/josuyo/2/edit

关于javascript - 使用 JavaScript 捕捉 SVG 更改线 x,y 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29614691/

相关文章:

svg - Snap SVG - 移动加载的元素

javascript - 如何更快地索引 Javascript 中的对象数组?

javascript - 在 AMP 中包含自定义 JavaScript 的最佳方式

javascript - 检查 -moz-border-radius 支持的最佳方法

javascript - 多个下拉菜单滑动切换

html - 使用 CSS 悬停时的 SVG 不透明度动画

svg - 在 html 服务器中使用 svgz

javascript - 显示 :none not working on iPhone simulator

javascript - 有可能从零件中获得完美的 svg 圆圈吗?

javascript - Snap.svg 拖动路径元素