Мне было интересно, можно ли установить свойство внутри jQuery animate на основе некоторых критериев. Пример:

var condition = offL > ((wW / 2) - $this.width());
tooltip.css(function() {
  if (condition) {
    return '"right", "auto"';
  } else {
    return '"left", "auto"';
  }
}).animate({
  "top": $this.offset().top + (posT / 2) - (tooltip.height() / 2),
  if (condition) {
    return '"left":"offL - tooltip.width() - 30"';
  } else {
    return '"right", "offR - tooltip.width() - 30"';
  }
}, 300).fadeTo(200, 1);

(tooltip и другие переменные определены ранее.)

Очевидно, это не работает. Но что делать, если им нужно использовать условные аргументы внутри функций?

Еще один побочный вопрос: правильно ли я использую свое условие как var?

2
Bram Vanroy 13 Янв 2013 в 13:07
Вы этого не сделаете, вы создаете переменную для хранения нужных вам данных.
 – 
Ohgodwhy
13 Янв 2013 в 13:14

1 ответ

Лучший ответ

Просто принял решение перед анимацией. например:

var properties = {}
if(condtion) {
  properties = {left: someThing};
else
  properties = {prop1: value1, prop2: value2};
$(obj).animate(properties,'fast');

И да, вы правильно используете условие.

var condition = offL > ((wW / 2) - $this.width());

Будет оцениваться как истина или ложь, так как это условие;)

3
mercsen 13 Янв 2013 в 13:14