Давайте попробуем этот подход:
var divid = $('#DIVID');
var currentBG = divid.css('background-image');
divid.html('<img src="'+currentbg+'" class="grescaled" />');
divid.css('background-image', '');
Выполнив вышеизложенное, вы фактически извлекаете фоновое изображение этого конкретного DIV, сбрасываете фон в «ничто», затем вставляете динамический тег IMG внутри того же самогоDIV показывает то же изображение, но на этот раз с классом CSS greyscaled .
В вашем файле CSS добавьте следующие строки:
.greyscaled { filter: url(/filters.svg#grayscale); filter: gray; -webkit-filter: grayscale(1); }
Теперь создайтефайл в корневом каталоге вашего документа с именем filters.svg, с содержимым ниже, которое фактически будет влиять на содержимое IMG.
<svg xmlns="http://www.w3.org/2000/svg">
<filter id="grayscale">
<feColorMatrix type="matrix" values="0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0" />
</filter>
</svg>
На всякий случай, если вы захотите поместить все на место на выходе, вы можете отменитьдействия над тем, чтобы вернуть IMG на задний план DIV.