Я новичок в jquery и изучаю snap.svg и не знаю, как работает этот код? Может кто-нибудь, пожалуйста, объяснить, как функция получает значения?

#javascript #jquery #svg #snap.svg

#javascript #jquery #svg #snap.svg

Вопрос:

 var s = Snap("#svgout");

var innerCircle = s.circle(150, 150, 80).attr({
    fill: "none",
    stroke: 'red',
    strokeWidth: 30,
    strokeDasharray: "10 300 40 10 10 10 10 10 10 10 10 10 10 10 10 10 10",
    strokeDashoffset: 50
});
  

Вот код. как работает эта функция? что это за значения, какие-то параметры / аргументы / массив, что это такое?

 Snap.animate(0,40, function( value ){ // 0,40 what are these?...
       innerCircle.attr({ 'strokeDashoffset': value })
alert(value);

},5000 );
  

Ответ №1:

Из документов SnapSVG:

 Snap.animate(from, to, setter, duration, [easing], [callback])
  

Итак, чтобы прервать ваш вызов Snap.animate выше:

 var from = 0; // starting value
var to = 40; // ending value

var setter = function ( value ) { // value will be somewhere between 0 and 40
    innerCircle.attr({ 'strokeDashoffset': value })
}; // called by SnapSVG to change the strokeDashoffset

var duration = 5000; // 5000 milliseconds (or 5 seconds)

// Using the above values, this is the equivalent to your original call 
Snap.animate( from, to, setter, duration ); 
  

Итак, 0, 40 — это только ваши начальные и конечные значения для анимации.

Я считаю, что функция ‘setter’ вызывается на протяжении всего времени с текущим ‘value’. Это значение будет где-то между 0 и 40, в зависимости от того, насколько далеко оно находится от анимации (так что через 2,5 секунды оно будет равно 20 в этом случае)

Вот скрипка, чтобы показать еще один пример в действии.