jQuery получает ошибку NaN при попытке установить цвет границы (но это работает?) - PullRequest
0 голосов
/ 30 ноября 2009

Я изменяю цвет границы объекта с помощью анимации:

    $listItem.siblings('li').andSelf().find('img').animate({ 
            borderTopColor: defaultThumbBorderColor,
            borderBottomColor: defaultThumbBorderColor,
            borderLeftColor: defaultThumbBorderColor,
            borderRightColor: defaultThumbBorderColor
          }, 500 );

В Firefox это работает. Тем не менее, я получаю эту ошибку в журнале консоли:

Warning: Expected number or percentage in rgb() but found 'NaN'.  Error in parsing value for 'border-bottom-color'.  Declaration dropped.

Кажется, что jQuery хочет число для этих свойств. Но даже если я передаю строку (например, 'red'), она работает, но регистрирует эту ошибку.

Есть идеи почему?

Дополнительный вопрос: я не могу применить все четыре цвета рамки одной линией через 'borderColor' или 'border-color'. Это единственный способ сделать это, как указано выше, где вы устанавливаете индивидуальный цвет каждой из четырех сторон? Проблема, с которой я сталкиваюсь, заключается в том, что она обычно работает. Но время от времени он не будет анимировать одну из четырех границ, казалось бы, случайного элемента в массиве. Итак, пример сценария: если у меня есть 20 элементов, он будет анимировать все четыре границы на 18 элементах, а затем 3 границы на 2 из них. Если это имеет значение, я прикрепляю границу к изображению. Возможно, это виновник? Я сделаю некоторые испытания ...

ОБНОВЛЕНИЕ ... ну, это не проблема, если это определенно изображение. Я, кажется, может быть сбой производительности (может быть, браузер? Может быть, JQuery?)

Если у меня есть группа элементов, для которых мне нужно изменить все 4 цвета границы одновременно, большую часть времени это работает, но, возможно, 1 из 3 раз, 1 или 2 из 20 или около того элементов будут оживите 3 их границы, а не все четыре.

На данный момент, я думаю, мне просто нужно дополнить div и использовать вместо этого цвет фона.

Ответы [ 2 ]

0 голосов
/ 29 декабря 2009

большую часть времени это работает, но, возможно, 1 наши 3 раза, 1 или 2 из 20 или около того элементы будут только оживлять 3 из их границы, а не все четыре.

У меня была такая же проблема.

Видимо, в плагине цветных анимаций была ошибка, которая теперь исправлена. (http://dev.jqueryui.com/ticket/4251)

А вот две строки, которые они изменили ...

http://dev.jqueryui.com/changeset/3269

Я добавил вышеуказанные изменения в плагин, и с тех пор у меня не было никаких проблем с ним.

Надеюсь, это полезно.

Travis

0 голосов
/ 01 декабря 2009

Я предполагаю, что вы используете официальную анимацию jQuery для окрашивания плагина. Если вы проверите его источник, вы увидите, что он переопределяет следующие свойства:

// We override the animation for all of these color styles
jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'])

Это объясняет, почему borderColor не анимирует все границы до указанного цвета.

Говоря о проблеме NaN, я думаю, что это ошибка. У меня была такая же проблема, когда я пытался анимировать около 30 объектов одновременно для определенного цвета фона. Некоторые анимации просто останавливались случайно. Поэтому обходной путь с отступом и фоном может не работать.

...