Tengo una URL de imagen en una imageUrl
variable y estoy tratando de configurarla como estilo CSS, usando jQuery:
$('myObject').css('background-image', imageUrl);
Esto parece no funcionar, ya que:
console.log($('myObject').css('background-image'));
vuelve none
.
¿Alguna idea de lo que estoy haciendo mal?
javascript
jquery
css
Blankman
fuente
fuente
Respuestas:
Probablemente desee esto (para que sea como una declaración de imagen de fondo CSS normal):
fuente
Deberá incluir comillas dobles (") antes y después de imageUrl de esta manera:
De esta manera, si la imagen tiene espacios, se establecerá como una propiedad.
fuente
$('myObject').css('background-image', 'url(' + encodeURIComponent(imageUrl) + ')');
$('.myObject').css('background-color', 'green');
trabajar, pero no cambiar la imagen sin comillas dobles. ¡Gracias!encodeURIComponent
no funcionará si parte de su URL ya contenía caracteres escapados de URL. Sin embargo, debe escapar del posible personaje de comillas dobles en 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");
Alternativamente a lo que los otros sugieren correctamente, me resulta más fácil alternar las clases de CSS, en lugar de las configuraciones individuales de CSS (especialmente las URL de imagen de fondo). Por ejemplo:
fuente
Aquí está mi código:
Disfruta amigo
fuente
Además de las otras respuestas, también puede usar "fondo". Esto es particularmente útil cuando desea establecer otras propiedades relacionadas con la forma en que el fondo usa la imagen, como:
fuente
Para aquellos que usan una URL real y no una variable:
fuente
Intente modificar el atributo "estilo":
fuente
Cadena de interpolación al rescate.
fuente
El problema que tenía es que seguía agregando un punto y coma
;
al final delurl()
valor, lo que impedía que el código funcionara.CÓDIGO NO FUNCIONA:
CÓDIGO DE TRABAJO:
Observe el punto y coma omitido
;
al final del código de trabajo. Simplemente no sabía la sintaxis correcta, y es realmente difícil notarlo. Esperemos que esto ayude a alguien más en el mismo barco.fuente
No olvide que la función jQuery css permite que se pasen objetos, lo que le permite configurar varios elementos al mismo tiempo. El código respondido se vería así:
$(this).css({'background-image':'url(' + imageUrl + ')'})
fuente
fuente