2015-11-10 3 views
1

Я использую Supersized для случайного отображения 3-х фоновых изображений SVG при обновлении. Я пытаюсь использовать jQuery, чтобы проверить, какой SVG отображается, поэтому я могу затем изменить другой css. Код, который я начинаю с:Проверка определенного изображения в фоновом режиме

if ($('#supersized').css('background-image') == "public/images/red-bg.svg") { 
    alert('There is a background image'); 
} 

Я не уверен, как точно проверить, какое изображение и выше не работает. Помощь приветствуется.

+1

Вам необходимо включить полный синтаксис 'background-image' в сравнении:' == "url (public/images/red-bg.svg") '. Тем не менее, было бы лучше, если бы вы использовали класс для назначения фонового изображения, так как тогда вы могли просто проверить, присутствует ли этот класс в этом элементе. –

ответ

1

Его очень вероятно, что значение background-image не будет точно public/images/red-bg.svg. Поэтому вы должны проверить, содержит ли он этот URL-адрес, используя метод indexOf. Кроме того, первое условие в if заключается в том, чтобы избежать ошибок в случае, если background-image не установлен (его значение будет undefined).

var bgImg = $('#supersized').css('background-image'); 
if (bgImg && bgImg.indexOf("public/images/red-bg.svg") > -1) { 
    alert('There is a background image'); 
} 

Метод indexOf возвращает позицию подстроки в строке. Например, для строки "HELLO" и подстановки "H" она вернет 0, а для подстроки "ELL" вернется 1. Он возвращает -1, когда подстрока не найдена.

Documentation

+0

Благодарим вас за это Диего, я действительно хочу понять вышеприведенный код. Что делает> -1? Спасибо – wonderingIf

+0

Приветствую вас. Я только что обновил свой ответ, предоставив вам больше информации. – Diego

1

Вы можете хранить ваша строка соответствует в bgCSS объекта и все ваши дополнительные ссылки стиль CSS чисто заказанные и на месте:

var $supersized = $('#supersized'); 

var bgCSS = { 
    // BG MATCH : {ADDITIONAL STYLES} 
    "red-bg.svg" : {color:"white", borderColor:"#a01"}, 
    "blue-bg.svg" : {color:"yellow", borderColor:"#0f0"} 
}; 

if ($supersized.css('background-image').match("red-bg.svg")) { // if has that BG... 
    $supersized.css(bgCSS["red-bg.svg"]); // ...apply our additional styles 
} 

http://jsbin.com/hutepa/1/edit?html,css,js,output

Смежные вопросы