Ich muss ein Bild in meine Seite einfügen. Ich möchte das Ziehen dieses Bildes deaktivieren. Ich versuche viele Dinge, aber keine Hilfe. Kann mir jemand helfen?
Ich möchte dieses Bild nicht als Hintergrundbild behalten, da ich die Größe des Bildes ändere.
Antworten:
Das kann dir gefallen ...
Sehen Sie, wie es funktioniert (oder nicht funktioniert)
Anscheinend verwenden Sie jQuery.
quelle
$(document)
statt$(window)
$('img').on('dragstart', false);
The value false is also allowed as a shorthand for a function that simply does return false.
Nur CSS-Lösung: Verwenden
pointer-events: none
https://developer.mozilla.org/en-US/docs/CSS/pointer-events
quelle
img
.Fügen Sie einfach draggable = "false" zu Ihrem Bild-Tag hinzu:
IE8 und darunter werden jedoch nicht unterstützt.
quelle
quelle
Die einfachste Cross-Browser-Lösung ist
Problem mit
ist, dass es in Firefox nicht funktioniert
quelle
Ich habe es auf meiner Website unter http://www.namdevmatrimony.in/ verwendet. Es funktioniert wie eine Magie !!! :) :)
quelle
Ich habe es selbst versucht und festgestellt, dass dies funktioniert.
Ich bin sicher, dass dies das Ziehen aller Bilder deaktiviert. Ich bin mir nicht sicher, ob es etwas anderes bewirkt.
quelle
<a>
Tag eingewickelt ist ? Wenn der Benutzer dann auf das Bild klickt, wird der Link nicht angeklickt.Siehe diese Antwort ; In Chrome und Safari können Sie den folgenden Stil verwenden, um das Standard-Ziehen zu deaktivieren:
Sie können versuchen, eine Benutzerauswahl für Firefox und IE (10+) zu treffen:
quelle
Sie können jedem Bild, das nicht ziehbar sein soll, Folgendes hinzufügen (innerhalb des
img
Tags):z.B
quelle
Dieser Code macht genau das, was Sie wollen. Es verhindert, dass das Bild gezogen wird, während andere Aktionen zugelassen werden, die vom Ereignis abhängen.
quelle
Verwenden Sie dies direkt:
ondragstart="return false;"
in Ihrem Bild-Tag.Wenn Sie mehrere Bilder haben, die in ein
<div>
Tag eingeschlossen sind:Funktioniert in allen gängigen Browsern.
quelle
Da meine Bilder mit Ajax erstellt wurden und daher unter windows.load nicht verfügbar sind.
$("#page").delegate('img', 'dragstart', function (event) { event.preventDefault(); });
Auf diese Weise kann ich steuern, welcher Abschnitt das Verhalten blockiert, nur eine Ereignisbindung verwendet und für zukünftige von Ajax erstellte Bilder funktioniert, ohne dass etwas unternommen werden muss.
Mit jQuery neue
on
Bindung:$('#page').on('dragstart', 'img', function(event) { event.preventDefault(); });
(danke @ialphan)quelle
img
Elemente, Gegenwart oder Zukunft, bindend ist . Am wenigsten intensiv, am robustesten.quelle
Tolle Lösung, hatte ein kleines Problem mit Konflikten. Wenn jemand einen Konflikt aus einer anderen js-Bibliothek hat, aktivieren Sie einfach keinen solchen Konflikt.
Hoffe das hilft jemandem.
quelle
Nun, ich weiß nicht, ob die Antworten hier allen geholfen haben oder nicht, aber hier ist ein einfacher Inline-CSS-Trick, der Ihnen definitiv helfen würde, das Ziehen und Auswählen von Texten auf einer HTML-Seite zu deaktivieren.
Fügen Sie auf Ihrem
<body>
Tag hinzuondragstart="return false"
. Dadurch wird das Ziehen von Bildern deaktiviert. Wenn Sie jedoch auch die Textauswahl deaktivieren möchten, fügen Sie hinzuonselectstart="return false"
.Der Code sieht folgendermaßen aus:
<body ondragstart="return false" onselectstart="return false">
quelle
Sie können meine Lösung als die beste betrachten. Die meisten Antworten sind nicht kompatibel mit alten Browsern wie IE8 seit e.preventDefault () wont sowie unterstützt werden onDragStart Ereignis. Um dies browserübergreifend zu tun, müssen Sie das Mausbewegungsereignis für dieses Bild blockieren . Siehe Beispiel unten:
jQuery
ohne jQuery
getestet und auch für IE8 funktioniert
quelle
Legen Sie die folgenden CSS-Eigenschaften für das Bild fest:
quelle
Nun, dies ist möglich, und die anderen Antworten sind vollkommen gültig, aber Sie könnten einen Brute-Force-Ansatz wählen und das Standardverhalten von verhindern
mousedown
Bildern verhindern. Was ist, um das Bild zu ziehen.Etwas wie das:
quelle
Funktioniert in diesem Plunker http://plnkr.co/edit/HbAbJkF0PVLIMjTmEZml
quelle
jQuery:
Sie können den Body Selector durch einen anderen Container ersetzen, den Kinder, die Sie verhindern möchten, nicht per Drag & Drop verschieben können.
quelle
Hierfür können Sie Inline-Code verwenden
Die zweite Option ist die Verwendung von externem oder On-Page-CSS
Beide funktionieren korrekt Ich verwende externes CSS auf dieser Site (hier klicken)
quelle
Die Antwort ist einfach:
<body oncontextmenu="return false"/>
- Rechtsklick<body ondragstart="return false"/>
deaktivieren - Maus ziehen<body ondrop="return false"/>
deaktivieren - Mausablage deaktivierenquelle
Ich habe die hier gezeigten CSS-Eigenschaften ausgeführt und ondragstart mit dem folgenden Javascript überwacht:
quelle
Von meiner eigenen Antwort stehlen , fügen Sie einfach ein vollständig transparentes Element derselben Größe über dem Bild hinzu. Achten Sie beim Ändern der Bildgröße darauf, die Größe des Elements zu ändern.
Dies sollte für die meisten Browser funktionieren, auch für ältere.
quelle