Quelqu'un connaît-il un moyen de rendre une image non déplaçable et non sélectionnable - en même temps - dans Firefox, sans recourir à Javascript? Cela semble trivial, mais voici le problème:
1) Peut être glissé et mis en surbrillance dans Firefox:
<img src="...">
2) Nous ajoutons donc ceci, mais l'image peut toujours être mise en surbrillance en faisant glisser:
<img src="..." draggable="false">
3) Nous ajoutons donc ceci, pour résoudre le problème de mise en évidence, mais de manière contre-intuitive, l'image redevient déplaçable. Bizarre, je sais! Utilisation de FF 16.0.1
<img src="..." draggable="false" style="-moz-user-select: none;">
Alors, est-ce que quelqu'un sait pourquoi l'ajout de "-moz-user-select: none", aurait en quelque sorte l'avantage et désactiver "draggable = false"? Bien sûr, Webkit fonctionne comme prévu. Il n'y a rien sur Interwebs à ce sujet ... Ce serait génial si nous pouvions faire la lumière sur ce sujet ensemble.
Merci!!
Edit: Il s'agit d'empêcher les éléments de l'interface utilisateur d'être glissés par inadvertance et d'améliorer la convivialité - pas une tentative boiteuse d'un système de protection contre la copie :-)
Réponses:
Définissez les propriétés CSS suivantes sur l'image:
la source
J'ai oublié de partager ma solution, je ne pouvais pas trouver un moyen de le faire sans utiliser JS. Il y a des cas où le CSS suggéré par @Jeffery A Wooden ne couvrira pas.
C'est ce que j'applique à tous mes conteneurs UI, pas besoin de l'appliquer à chaque élément car il se récuse sur tous les éléments enfants.
CSS:
JS:
C'était bien plus compliqué que nécessaire.
la source
<img src="..." draggable="false" style="-moz-user-select: none;" ondragstart="return false;">
pour correspondre au code d'OP.Vous pouvez utiliser la
pointer-events
propriété dans votre CSS et la définir sur "aucun"Édité
cela bloquera l'événement (clic). Une meilleure solution serait donc
la source
Selon la situation, il est souvent utile de faire de l'image une image d'arrière-plan d'un
div
avec CSS.Puis en CSS:
Voir ce JSFiddle pour un exemple en direct avec un bouton et une option de dimensionnement différente.
la source
Vous pourriez probablement avoir recours à
la source
Une solution générique spécialement pour le navigateur Windows Edge (comme l'option -ms-user-select: none; la règle CSS ne fonctionne pas):
Remarque: Cela peut vous éviter d'avoir à ajouter
draggable="false"
à chaqueimg
balise lorsque vous avez encore besoin de l'événement de clic (c'est-à-dire que vous ne pouvez pas l'utiliserpointer-events: none
), mais que vous ne voulez pas que l'image de l'icône de glissement apparaisse.la source
Vous pouvez définir l'image comme image d'arrière-plan. Puisqu'elle réside dans un
div
, et que lediv
est indraggable, l'image sera indraggable:la source
J'ai créé un élément div qui a la même taille que l'image et est positionné au-dessus de l'image . Ensuite, les événements de souris ne vont pas à l'élément image.
la source