DOM saya terlihat seperti ini:
<div id="d1">
<div class="c1">
<a href="#"><img src="img1_on.gif"></a>
<a href="#"><img src="img2_on.gif"></a>
</div>
</div>
Ketika seseorang mengklik gambar, saya ingin gambar src berubah ke <img src="imgx_off.gif">
tempat yang x
mewakili nomor gambar 1 atau 2.
Apakah ini mungkin atau apakah saya harus menggunakan CSS untuk mengubah gambar?
javascript
jquery
image
pengguna67033
sumber
sumber
19th July, 2016 15:39 PM
, Pertanyaan Upvotes Count 369 Dan @jonstjohn Answer Upvotes Count 931 . Tapi, Nasib Buruk, @OP Tidak Masuk SetelahFeb 17 '09 at 2:57
.:(
Dan, @jonstjohn Jawaban Tetap bertanda .Jawaban:
Anda dapat menggunakan fungsi attr () jQuery . Misalnya, jika
img
tag Anda memilikiid
atribut 'my_image', Anda akan melakukan ini:Kemudian Anda dapat mengubah
src
gambar Anda dengan jQuery seperti ini:Untuk melampirkan ini ke suatu
click
acara, Anda dapat menulis:Untuk memutar gambar, Anda bisa melakukan ini:
sumber
Salah satu kesalahan umum yang dilakukan orang ketika mengubah sumber gambar adalah tidak menunggu pemuatan gambar untuk melakukan tindakan sesudahnya seperti pematangan ukuran gambar, dll. Anda harus menggunakan
.load()
metode jQuery untuk melakukan hal-hal setelah memuat gambar.Alasan untuk mengedit: https://stackoverflow.com/a/670433/561545
sumber
Untuk informasi lebih lanjut. Saya mencoba mengatur atribut src dengan metode attr di jquery untuk gambar iklan menggunakan sintaksis misalnya:
$("#myid").attr('src', '/images/sample.gif');
Solusi ini bermanfaat dan berfungsi tetapi jika mengubah jalur, ubah juga jalur untuk gambar dan tidak berfungsi.
Saya sudah mencari penyelesaian masalah ini tetapi tidak menemukan apa pun.
Solusinya adalah meletakkan '\' di awal jalan:
$("#myid").attr('src', '\images/sample.gif');
Trik ini sangat berguna bagi saya dan saya harap ini berguna bagi orang lain.
sumber
JIKA tidak hanya kerangka kerja jQuery atau sumber daya lainnya - banyak kb yang diunduh setiap kali oleh setiap pengguna hanya untuk trik sederhana - tetapi juga JavaScript asli (!):
Ini dapat ditulis secara umum dan lebih elegan:
sumber
Saya akan menunjukkan kepada Anda cara mengubah gambar
src
, sehingga ketika Anda mengklik gambar, gambar tersebut berputar melalui semua gambar yang ada di HTML Anda (dalamd1
id danc1
kelas Anda secara khusus) ... apakah Anda memiliki 2 gambar atau lebih dalam HTML Anda .Saya juga akan menunjukkan kepada Anda cara membersihkan halaman setelah dokumen siap, sehingga hanya satu gambar yang ditampilkan pada awalnya.
Kode lengkap
Kerusakan
Buat salinan tautan yang berisi gambar (catatan: Anda juga dapat menggunakan atribut href dari tautan untuk fungsionalitas tambahan ... misalnya menampilkan tautan yang berfungsi di bawah setiap gambar ):
Periksa berapa banyak gambar dalam HTML dan buat variabel untuk melacak gambar mana yang sedang ditampilkan:
Ubah HTML dokumen sehingga hanya gambar pertama yang ditampilkan. Hapus semua gambar lainnya.
Bind fungsi untuk menangani ketika tautan gambar diklik.
Inti dari kode di atas adalah menggunakan
++$imgShow % $length
untuk menelusuri objek jQuery yang berisi gambar.++$imgShow % $length
pertama meningkatkan penghitung kita dengan satu, kemudian mod nomor itu dengan berapa banyak gambar yang ada. Hal ini akan menjaga resultan indeks bersepeda dari0
kelength-1
, yang merupakan indeks dari$images
objek. Ini berarti kode ini akan berfungsi dengan 2, 3, 5, 10, atau 100 gambar ... bersepeda melalui masing-masing gambar secara berurutan dan memulai kembali pada gambar pertama ketika gambar terakhir tercapai.Selain itu,
.attr()
digunakan untuk mendapatkan dan mengatur atribut "src" dari gambar. Untuk memilih elemen dari antara$images
objek, saya menetapkan$images
sebagai konteks jQuery menggunakan formulir$(selector, context)
. Lalu saya gunakan.eq()
untuk memilih hanya elemen dengan indeks spesifik yang saya tertarik.Contoh jsFiddle dengan 3 gambar
Anda juga dapat menyimpan
src
s dalam sebuah array.Contoh jsFiddle dengan 3 gambar
Dan inilah cara menggabungkan hrefs dari tag anchor di sekitar gambar:
contoh jsFiddle
sumber
Semoga ini bisa berhasil
sumber
Anda harus menambahkan atribut id ke tag gambar Anda, seperti ini:
maka Anda dapat menggunakan kode ini untuk mengubah sumber gambar:
sumber
Anda juga dapat melakukan ini dengan jQuery dengan cara ini:
Anda dapat memiliki kondisi jika ada beberapa status untuk sumber gambar.
sumber
Saya memiliki masalah yang sama ketika mencoba memanggil tombol re captcha. Setelah beberapa pencarian, sekarang fungsi di bawah ini berfungsi dengan baik di hampir semua browser terkenal (chrome, Firefox, IE, Edge, ...):
'theUrl' digunakan untuk membuat gambar captcha baru dan dapat diabaikan dalam kasus Anda. Poin paling penting adalah menghasilkan URL baru yang memaksa FF dan IE untuk membuat ulang gambar.
sumber
Ubah sumber gambar menggunakan jQuery
click()
elemen:
kode:
sumber
sumber
Saya memiliki keajaiban yang sama hari ini, saya lakukan dalam cara ini:
sumber
Ini adalah cara yang dijamin untuk menyelesaikannya di JavaScript Vanilla (atau cukup Murni):
sumber
Hanya tambahan, untuk membuatnya lebih kecil:
sumber
Tidak ada cara untuk mengubah sumber gambar dengan CSS.
Hanya cara yang mungkin adalah menggunakan Javascript atau perpustakaan Javascript seperti jQuery .
Logika-
Gambar ada di dalam div dan tidak ada
class
atauid
dengan gambar itu.Jadi logika akan memilih elemen di dalam
div
tempat gambar berada.Kemudian pilih semua elemen gambar dengan lingkaran dan ubah src gambar dengan Javascript / jQuery .
Contoh Kode dengan output demo-
sumber