Adakah yang tahu cara membuat gambar tidak bisa diseret dan tidak dapat dipilih - di saat bersamaan - di Firefox, tanpa menggunakan Javascript? Tampaknya sepele, tapi ini masalahnya:
1) Dapat diseret dan disorot di Firefox:
<img src="...">
2) Jadi kami menambahkan ini, tetapi gambar masih dapat disorot sambil menyeret:
<img src="..." draggable="false">
3) Jadi kami menambahkan ini, untuk memperbaiki masalah penyorotan, tetapi kemudian secara berlawanan, gambar menjadi dapat diseret lagi. Aneh, saya tahu! Menggunakan FF 16.0.1
<img src="..." draggable="false" style="-moz-user-select: none;">
Jadi, apakah ada yang tahu mengapa menambahkan "-moz-user-select: none", entah bagaimana akan mengalahkan dan menonaktifkan "draggable = false"? Tentu saja, webkit berfungsi seperti yang diharapkan. Tidak ada yang ada di luar sana tentang Jalinan tentang ini ... Akan lebih bagus jika kita bisa menyinari hal ini bersama-sama.
Terima kasih!!
Sunting: Ini tentang menjaga agar elemen UI tidak terseret secara tidak sengaja dan meningkatkan kegunaan - bukan upaya timpang pada skema perlindungan salinan :-)
Jawaban:
Setel properti CSS berikut ke gambar:
sumber
Saya lupa membagikan solusi saya, saya tidak dapat menemukan cara untuk melakukan ini tanpa menggunakan JS. Ada beberapa kasus sudut di mana @Jeffery A Wooden menyarankan CSS tidak akan mencakup.
Ini adalah apa yang saya terapkan pada semua wadah UI saya, tidak perlu diterapkan pada setiap elemen karena ia berhenti pada semua elemen anak.
CSS:
JS:
Ini jauh lebih rumit daripada yang seharusnya.
sumber
<img src="..." draggable="false" style="-moz-user-select: none;" ondragstart="return false;">
agar sesuai dengan kode OP.Anda dapat menggunakan
pointer-events
properti di CSS Anda, dan mengaturnya sama dengan 'tidak ada'Diedit
ini akan memblokir (klik) acara. Jadi solusi yang lebih baik
sumber
Bergantung pada situasinya, seringkali membantu untuk menjadikan gambar sebagai gambar latar belakang
div
dengan CSS.Kemudian di CSS:
Lihat JSFiddle ini untuk contoh langsung dengan tombol dan opsi ukuran yang berbeda.
sumber
Anda mungkin bisa menggunakan
sumber
Solusi umum terutama untuk browser Windows Edge (sebagai -ms-user-select: none; aturan CSS tidak berfungsi):
Catatan: Ini dapat menghemat Anda harus menambahkan
draggable="false"
ke setiapimg
tag ketika Anda masih membutuhkan acara klik (yaitu Anda tidak dapat menggunakanpointer-events: none
), tetapi tidak ingin gambar ikon seret muncul.sumber
Anda dapat mengatur gambar sebagai gambar latar belakang. Karena berada di a
div
, dandiv
undraggable, gambar akan undraggable:sumber
Saya membuat elemen div yang memiliki ukuran yang sama dengan gambar dan diposisikan di atas gambar . Kemudian, peristiwa mouse tidak pergi ke elemen gambar.
sumber