Я видел несколько других постов, касающихся jQuery .css()
, не работающих с -webkit-gradient
, однако мне еще не удалось найти ни одного, относящегося к -ms-linear-gradient
, -o-linear-gradient
и linear-gradient
.
Короче говоря, я создал функцию, которая устанавливает градиент фона на основе #hex
для элемента, используя все самые популярные свойства CSS для кросс-браузерной совместимости, взятые непосредственно из ColorZilla .
Вот фрагмент кода, о котором я говорю:
$(elem).css({
'background': b,
'background': '-moz-linear-gradient(top, '+a+' 0%, '+b+' 100%)',
'background': '-webkit-gradient(linear, left top, left bottom, color-stop(0%,'+a+'), color-stop(100%,'+b+'))',
'background': '-webkit-linear-gradient(top, '+a+' 0%,'+b+' 100%)',
'background': '-o-linear-gradient(top, '+a+' 0%,'+b+' 100%)', // Breaks execution
'background': '-ms-linear-gradient(top, '+a+' 0%,'+b+' 100%)', // Breaks execution
'background': 'linear-gradient(top, '+a+' 0%,'+b+' 100%)', // Breaks execution
'filter': 'progid:DXImageTransform.Microsoft.gradient( startColorstr=\''+a+'\', endColorstr=\''+b+'\',GradientType=0 )'
});
Я разместил комментарий //breaks execution
рядом с каждым изсвойства, которые, когда активны (или коллективно, или индивидуально), нарушают выполнение скрипта (никакие другие свойства, например, background: b
(b
, конечно, является переменной), не установлены.
Я абсолютно озадачен какпочему это так.
Пока я пробовал:
- Использование двойных кавычек вместо одинарных.
- Замена переменнойиспользование (
+a+
, +b+
) с фактическими гексами.
Я думаю,Возможно, в этих трех есть персонаж, которого нужно убежать или что-то в этом роде?
Любая помощь в выяснении, почему это так, будет принята с благодарностью!