2016-11-16 2 views
1

я оживляющий файл SVG, и для того, чтобы не раздуваться мой код, который я написал функцию последующей:Javascript параметр функции не будет загружать

function animateSingleAtt(svgName, element, attToAnimate, attValue, animationTiming) { 
    svgName.select(element).animate({ 
     attToAnimate : attValue 
    }, animationTiming); 
} 

Все параметры загружаются нормально, за исключением attToAnimate , Я понятия не имею, почему это так - он просто передается элементу svg как атрибут с именем attToAnimate.

Я пробовал записывать его вне функции animate, и когда я это делаю, он прошел отлично.

Любая помощь будет принята с благодарностью!

ответ

1

Похоже, вы используете attToAnimate в качестве ключа на объекте. Для того, чтобы сделать это правильно, измените код на что-то вроде этого:

function animateSingleAtt(svgName, element, attToAnimate, attValue, animationTiming) { 
    var anObject = {}; 
    anObject[attToAnimate] = attValue; 
    svgName.select(element).animate(anObject, animationTiming); 
} 

Это должно правильно построить объект, который вы хотите перейти к .animate

+0

Отлично! Это сделали трюки. Бесконечно благодарен! – SorenRomer

+1

Только для записи с ES6 вы можете использовать '{[attToAnimate]: attValue}' вместо назначения объекта переменной и затем установить значение. – schroffl

+0

@schroffl ... приятно знать. благодаря – rfornal

Смежные вопросы