Saya memiliki URL gambar dalam sebuah imageUrl
variabel dan saya mencoba mengaturnya sebagai gaya CSS, menggunakan jQuery:
$('myObject').css('background-image', imageUrl);
Ini tampaknya tidak berfungsi, karena:
console.log($('myObject').css('background-image'));
kembali none
.
Ada ide, apa yang saya lakukan salah?
javascript
jquery
css
Blankman
sumber
sumber
Jawaban:
Anda mungkin menginginkan ini (menjadikannya seperti deklarasi gambar latar CSS normal):
sumber
Anda akan ingin menyertakan tanda kutip ganda (") sebelum dan sesudah imageUrl seperti ini:
Dengan cara ini, jika gambar memiliki spasi, masih akan ditetapkan sebagai properti.
sumber
$('myObject').css('background-image', 'url(' + encodeURIComponent(imageUrl) + ')');
$('.myObject').css('background-color', 'green');
bekerja, tetapi tidak mengubah gambar tanpa tanda kutip ganda. Terima kasih!encodeURIComponent
tidak akan berfungsi jika bagian dari URL Anda sudah berisi URL yang lolos dari karakter. Anda harus menghindari karakter tanda kutip ganda di imageUrl:$('myObject').css('background-image', 'url("' + imageUrl.replace(/"/g, '\\"') + '")');
$('#elem').css('background-image', 'url(' + encodeURIComponent(thumbData.url) + ')');
memberi sayabackground-image: url("%2Ffiles%2Fusers%2Fthumbs%2F36206608-hd-pics-3.jpg");
Atau dengan apa yang orang lain sarankan dengan benar, saya merasa lebih mudah biasanya untuk beralih kelas CSS, daripada pengaturan CSS individu (terutama URL gambar latar belakang). Sebagai contoh:
sumber
Ini kode saya:
Selamat menikmati, teman
sumber
Lebih jauh ke jawaban lain, Anda juga dapat menggunakan "latar belakang". Ini sangat berguna ketika Anda ingin mengatur properti lain yang berkaitan dengan cara gambar digunakan oleh latar belakang, seperti:
sumber
Bagi mereka yang menggunakan URL aktual dan bukan variabel:
sumber
Coba ubah atribut "style":
sumber
Interpolasi string ke penyelamatan.
sumber
Masalah yang saya alami, adalah bahwa saya terus menambahkan titik koma
;
di akhirurl()
nilai, yang mencegah kode dari bekerja.BUKAN KODE KERJA:
KODE KERJA:
Perhatikan tanda titik dua yang dihapus
;
di bagian akhir kode kerja. Saya hanya tidak tahu sintaks yang benar, dan sangat sulit untuk menyadarinya. Semoga ini bisa membantu orang lain di kapal yang sama.sumber
Jangan lupa bahwa fungsi jQuery css memungkinkan objek untuk dilewati yang memungkinkan Anda untuk mengatur beberapa item sekaligus. Kode yang dijawab akan terlihat seperti ini:
$(this).css({'background-image':'url(' + imageUrl + ')'})
sumber
sumber