¿Alguien sabe de una manera de hacer que una imagen no sea arrastrable y no seleccionable, al mismo tiempo, en Firefox, sin recurrir a Javascript? Parece trivial, pero este es el problema:
1) Se puede arrastrar y resaltar en Firefox:
<img src="...">
2) Entonces agregamos esto, pero la imagen aún se puede resaltar mientras se arrastra:
<img src="..." draggable="false">
3) Entonces agregamos esto, para solucionar el problema de resaltado, pero luego, de forma contradictoria, la imagen se vuelve arrastrable nuevamente. Extraño, lo sé! Usando FF 16.0.1
<img src="..." draggable="false" style="-moz-user-select: none;">
Entonces, ¿alguien sabe por qué agregar "-moz-user-select: none", de alguna manera triunfaría y deshabilitaría "draggable = false"? Por supuesto, webkit funciona como se esperaba. No hay nada en Interwebs sobre esto ... Sería genial si pudiéramos arrojar algo de luz sobre esto juntos.
¡¡Gracias!!
Editar: se trata de evitar que los elementos de la interfaz de usuario sean arrastrados inadvertidamente y mejorar la usabilidad, no un intento poco convincente de un esquema de protección de copia :-)
Respuestas:
Establezca las siguientes propiedades CSS en la imagen:
fuente
Me he olvidado de compartir mi solución, no pude encontrar una manera de hacerlo sin usar JS. Hay algunos casos en los que el CSS sugerido de @Jeffery A Wooden no se cubrirá.
Esto es lo que aplico a todos mis contenedores de UI, no es necesario aplicarlo a cada elemento, ya que se recusa en todos los elementos secundarios.
CSS:
JS:
Esto fue mucho más complicado de lo necesario.
fuente
<img src="..." draggable="false" style="-moz-user-select: none;" ondragstart="return false;">
para que coincida con el código de OP.Puede usar la
pointer-events
propiedad en su CSS y establecerla igual a 'none'Editado
esto bloqueará (haga clic) evento. Entonces, la mejor solución sería
fuente
Dependiendo de la situación, a menudo es útil hacer que la imagen sea una imagen de fondo de a
div
con CSS.Luego en CSS:
Vea este JSFiddle para ver un ejemplo en vivo con un botón y una opción de tamaño diferente.
fuente
Probablemente podrías recurrir a
fuente
Una solución genérica especialmente para el navegador Windows Edge (como -ms-user-select: none; la regla CSS no funciona):
Nota: Esto puede ahorrarle tener que agregar
draggable="false"
a cadaimg
etiqueta cuando todavía necesita el evento de clic (es decir, no puede usarpointer-events: none
), pero no desea que aparezca la imagen del icono de arrastre.fuente
Puede configurar la imagen como imagen de fondo. Dado que reside en a
div
, y nodiv
es arrastrable, la imagen no será arrastrable:fuente
Creé un elemento div que tiene el mismo tamaño que la imagen y se coloca en la parte superior de la imagen . Luego, los eventos del mouse no van al elemento de imagen.
fuente