У меня есть URL изображения в imageUrl
переменной, и я пытаюсь установить его как стиль CSS, используя jQuery:
$('myObject').css('background-image', imageUrl);
Это, кажется, не работает, так как:
console.log($('myObject').css('background-image'));
возвращается none
.
Есть идеи, что я делаю не так?
javascript
jquery
css
Бланкмэн
источник
источник
Ответы:
Вы, вероятно, хотите это (чтобы сделать это как обычное объявление CSS background-image):
источник
Вы хотите включить двойные кавычки (") до и после imageUrl следующим образом:
Таким образом, если изображение имеет пробелы, оно все равно будет установлено как свойство.
источник
$('myObject').css('background-image', 'url(' + encodeURIComponent(imageUrl) + ')');
$('.myObject').css('background-color', 'green');
работать, но не менять изображение без двойных кавычек. Спасибо!encodeURIComponent
не будет работать, если часть вашего URL уже содержит экранированные символы URL. Вы должны избежать потенциальной двойной кавычки в ImageUrl , хотя:$('myObject').css('background-image', 'url("' + imageUrl.replace(/"/g, '\\"') + '")');
$('#elem').css('background-image', 'url(' + encodeURIComponent(thumbData.url) + ')');
дал мнеbackground-image: url("%2Ffiles%2Fusers%2Fthumbs%2F36206608-hd-pics-3.jpg");
В качестве альтернативы тому, что правильно предлагают другие, мне легче переключать классы CSS, а не отдельные настройки CSS (особенно URL-адреса фонового изображения). Например:
источник
Вот мой код:
Наслаждайся, друг
источник
В дополнение к другим ответам, вы также можете использовать «фон». Это особенно полезно, когда вы хотите установить другие свойства, относящиеся к способу использования изображения фоном, такие как:
источник
Для тех, кто использует реальный URL, а не переменную:
источник
Попробуйте изменить атрибут "style":
источник
Струнная интерполяция на помощь.
источник
Проблема, с которой я столкнулся, заключалась в том, что я продолжал добавлять
;
точку с запятой в концеurl()
значения, что препятствовало работе кода.НЕ РАБОЧИЙ КОД:
РАБОЧИЙ КОД:
Обратите внимание на пропущенную
;
точку с запятой в конце в рабочем коде. Я просто не знал правильный синтаксис, и это действительно трудно заметить. Надеюсь, это поможет кому-то еще в той же лодке.источник
Не забывайте, что функция jQuery css позволяет передавать объекты, что позволяет вам устанавливать несколько элементов одновременно. Ответный код будет выглядеть следующим образом:
$(this).css({'background-image':'url(' + imageUrl + ')'})
источник
источник