使用 JavaScript 捕捉 SVG 更改线 x、y 坐标
Snap SVG change line x,y coordinates using JavaScript
我想更改 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);
我想更改 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);