как добиться кросс-браузерной поддержки при создании градиента css3 через jQuery - PullRequest
2 голосов
/ 31 августа 2011

С помощью тега стиля или внешнего файла таблицы стилей я могу использовать следующее для поддержки различных браузеров:

#divID {
    background: rgb(30,87,153); /* Old browsers */
    background: -moz-linear-gradient(top, rgba(30,87,153,1) 0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(51%,rgba(32,124,202,1)), color-stop(100%,rgba(125,185,232,1))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* Opera11.10+ */
    background: -ms-linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* IE10+ */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
    background: linear-gradient(top, rgba(30,87,153,1) 0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1) 51%,rgba(125,185,232,1) 100%); /* W3C */
}

У меня есть страница, где пользователь может установить параметры градиента с помощью ползунков.Если я попробую что-то вроде этого, свойство background css будет перезаписано следующим значением, которое задается установщиком jquery css:

$("#divID").css({background:"-moz-linear-gradient(top, rgba(30,87,153,1) 0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%, rgba(125,185,232,1) 100%);"});
$("#divID").css({background:"-webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(30,87,153,1)), color-stop(50%,rgba(41,137,216,1)), color-stop(51%,rgba(32,124,202,1)), color-stop(100%,rgba(125,185,232,1)));"});
...etc

Есть ли в любом случае я могу сделать то же самое с javascript или jQuery, как этосделано с css?

1 Ответ

1 голос
/ 01 сентября 2011

Должен работать следующий метод:

var bgWebKit = "-webkit-gradient(linear, " + ...;
var bgMoz    = "-moz-linear-gradient(" + ...;

$('#divID')
  .css({ background: bgWebKit })
  .css({ background: bgMoz });

Согласно этому источнику

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...