Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2011, 13:16
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Написание метода подобного .animate()
1. Как бы это не звучало смешно, но я решил написать себе подобие мини фрэймворка на js
Когда начал писать метод, подобный .animate() в jQuery, то столкнулся с некоторыми трудностями.. А именно с "конструкцией запроса" (не смог найти подходящего слова).

В jQuery это выглядит так:
$('ид').animate({height: 'show', width: 'show'}, 200);

У меня obj.animate(id,speed,px);

Сразу видно, насколько мой метод коряв и не динамичен. В нём сразу изменяется и ширина и высота элемента, лишая пользователя выбора..

Подскажите пожалуйста, как сделать конструкцию, примерно такую же как в jQuery?
Например, obj('ид').animate({аргумент: 'значение'},speed,px);
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2011, 13:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Зачем вам метод animate. Сделать любую конкретную анимацию очень просто, сделать универсальную функцию анимации очень сложно.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2011, 13:37
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Сообщение от Kolyaj Посмотреть сообщение
Зачем вам метод animate. Сделать любую конкретную анимацию очень просто, сделать универсальную функцию анимации очень сложно.
Ну как бы попрактиковаться в подобном, да и самому интересно как и что там)
Да и к тому же мне не нужна универсальная, мне нужно чтоб она выполняла изменение высоты и ширины)
Основная проблема состоит в том, как передать {аргумент: 'значение', аргумент2: 'значение2' и т.д.}
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2011, 16:10
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от (Sandr)
Основная проблема состоит в том, как передать {аргумент: 'значение', аргумент2: 'значение2' и т.д.}
это самое простое что может быть в этой функции, один из вариантов:

({
     bar : function(obj) {
          for(i in obj) {
                alert(i + ' : ' + obj[i]);
          }
     }
}).bar({
    color : 'red',
    height: '14px'
});

Последний раз редактировалось monolithed, 15.07.2011 в 16:13.
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2011, 16:43
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

Сообщение от monolithed Посмотреть сообщение
это самое простое что может быть в этой функции, один из вариантов:

({
     bar : function(obj) {
          for(i in obj) {
                alert(i + ' : ' + obj[i]);
          }
     }
}).bar({
    color : 'red',
    height: '14px'
});
Ооо.. спасибо, но можно другой вариант, чуточку по проще?)) А то в этом я понял только
function(obj) {
          for(i in obj) {
                alert(i + ' : ' + obj[i]);
          }
     }


Или можешь дать ссылку, где рассказывается про подобные конструкции?
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2011, 16:56
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от (Sandr)
Или можешь дать ссылку, где рассказывается про подобные конструкции?
все в голове.

Сообщение от (Sandr)
но можно другой вариант, чуточку по проще?
куда проще?

function Foo(obj) {
    for(i in obj) {
         alert(i + ' : ' + obj[i]);
    }
}

Foo({
    color : 'red',
    height: '14px'
});
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2011, 17:10
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

monolithed,
О! Спасибо, это то, что нужно))
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2011, 17:33
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

monolithed,
Написал, теперь "запрос" выглядит так:
$.animate({width: 'close', height: 'close'}, id,speed,px);

Как думаешь, если судить по внешнему виду, то терпимо смотрится?))
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2011, 17:48
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от (Sandr)
$.animate({width: 'close', height: 'close'}, id,speed,px);
тогда уж так:
$('#id').animate({width: 'value', height: 'value'}, speed);

также можно сделать второй вариант инициализации (как в jQuery)
а вообще, если есть сомнения, посмотрите как эта функция реализована библиотеках
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2011, 18:07
Профессор
Отправить личное сообщение для (Sandr) Посмотреть профиль Найти все сообщения от (Sandr)
 
Регистрация: 14.10.2010
Сообщений: 376

monolithed,
"а вообще, если есть сомнения, посмотрите как эта функция реализована библиотеках", дело в том, что когда пытаюсь разобраться в чужом коде, то это редко у меня получается(
По этому и пишу свои велосипеды)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Применение метода к объекту Kiomot jQuery 1 11.07.2011 15:14
Постоянная работа скрипта Furio29 Общие вопросы Javascript 0 05.05.2011 16:40