использование параметров jQuery для анимации

0

Я пытаюсь написать плагин jQuery, чтобы сделать некоторую анимацию, но я хочу передать параметры анимации в виде строки, например:

(function ($) {
    $.fn.animateBox = function (options) {
        options = $.extend({
            animation: "backgroundColor: '#0E4839', padding: '10px', color: '#ffffff', fontSize: '153.846%', margin: '0 0 1em 0'"
        }, options);

        return $(this).each(function () {
            var box = $(this);
            box.animate({ options.animation }, 'slow');
        });
    };
})(jQuery);

Возможно ли это, так как вышеописанное в настоящее время вызывает ошибку, жалуясь на точку в параметрах. options.animation должна быть в виде двоеточия (так как ожидается что-то вроде backgroundColor: '#0E4839')

  • 0
    сделать анимацию объектом вместо строки. затем box.animate(options.animation, 'slow');
  • 0
    почему вы хотите передать его как строку, а не как объект
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

Вы передаете свойство как строку, но анимация jQuery ожидает объект. И вы не можете заменить переменную внутри {} (литерал объекта).

Таким образом, самым простым решением было бы сделать animation объектом вместо строки, чтобы она выглядела так:

 options = $.extend({
   animation: {
     backgroundColor: '#0E4839', 
     padding: '10px', 
     color: '#ffffff', 
     fontSize: '153.846%', 
     margin: '0 0 1em 0'
   }
 }, options);

затем измените это:

box.animate({options.animation}, 'slow');

к этому:

box.animate(options.animation, 'slow');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню