我需要在我的页面上放一张图片。我要禁用图像的拖拽。我尝试了很多方法,但都无济于事。有人能帮我一下吗?
我不想保留那个图像作为背景图像因为我在调整图像的大小。
我需要在我的页面上放一张图片。我要禁用图像的拖拽。我尝试了很多方法,但都无济于事。有人能帮我一下吗?
我不想保留那个图像作为背景图像因为我在调整图像的大小。
你可以这样…
document.getElementById('my-image').ondragstart = function() { return false; };
看到它工作(或者不工作)
看起来你正在使用jQuery。
$('img').on('dragstart', function(event) { event.preventDefault(); });
好吧,这是可能的,其他的答案是完全有效的,但你可以采取暴力的方法,防止鼠标在图像上的默认行为。也就是开始拖动图像。
就像这样:
window.onload = function () {
var images = document.getElementsByTagName('img');
for (var i = 0; img = images[i++];) {
img.ondragstart = function() { return false; };
}
};
我自己也试过,发现这很有效。
$("img").mousedown(function(){
return false;
});
我确信这将禁用所有图像的拖动。不确定它会影响其他东西。
很好的解决方案,有个小矛盾, 如果其他人有冲突从其他js库简单启用没有这样的冲突。
var $j = jQuery.noConflict();$j('img').bind('dragstart', function(event) { event.preventDefault(); });
希望这能帮助到一些人。
由于我的图像是使用ajax创建的,因此在windows.load上不可用。
$("#page").delegate('img', 'dragstart', function(事件){event. preventdefault ();});
通过这种方式,我可以控制哪个部分阻塞行为,它只使用一个事件绑定,它适用于未来ajax创建的图像,而无需做任何事情。
与jQuery新的绑定:
$(' # '页)。on('dragstart', 'img', function(event) {event. preventdefault ();}); (感谢@ialphan)
你可以将以下内容添加到你不想拖拽的每张图片中(在img标签中):
onmousedown="return false;"
如。
img src="Koala.jpg" onmousedown="return false;"
这段代码正是您想要的。它可以阻止图像拖动,同时允许依赖于该事件的任何其他操作。
$("img").mousedown(function(e){
e.preventDefault()
});
CSS唯一的解决方案:使用指针事件:none
https://developer.mozilla.org/en-US/docs/CSS/pointer-events
只需添加draggable="false"到你的图像标签:
<img draggable="false" src="image.png">
IE8及以下不支持。
看看这个答案;在Chrome和Safari中,你可以使用以下样式禁用默认拖拽:
-webkit-user-drag: auto | element | none;
您可以尝试用户选择Firefox和IE(10+):
-moz-user-select: none | text | all | element
-ms-user-select: none | text | all | element
document.getElementById('#yourImageId').addEventListener('dragstart', function(e) {
e.preventDefault();
});
工作在这个Plunker http://plnkr.co/edit/HbAbJkF0PVLIMjTmEZml
我不知道这里的答案是否对每个人都有帮助,但这里有一个简单的内联CSS技巧,它肯定会帮助你在HTML页面上禁用拖拽和选择文本。
在<body>标签上添加ondragstart="return false"。这将禁用拖拽图像。但如果你也想禁用文本选择,那么添加onselectstart="return false"。
代码如下所示:<body ondragstart="return false" onselectstart="return false">
你可以认为我的解决办法是最好的。大多数答案都不兼容旧的浏览器,如IE8,因为e.c preventdefault()不支持以及ondragstart事件。要做到跨浏览器兼容,你必须阻止鼠标移动事件为这张图片。请看下面的例子:
jQuery
$("#my_image").mousemove( function(e) { return false } ); // fix for IE
$("#my_image").attr("draggable", false); // disable dragging from attribute
没有jQuery
var my_image = document.getElementById("my_image");
my_image.setAttribute("draggable", false);
if (my_image.addEventListener) {
my_image.addEventListener("mousemove", function(e) { return false });
} else if (my_image.attachEvent) {
my_image.attachEvent("onmousemove", function(e) { return false });
}
甚至可以在IE8上测试和运行
直接使用这个:ondragstart="return false;"在你的图像标签。
<img src="http://image-example.png" ondragstart="return false;"/>
如果你有多个图像,用<div>标签包装:
<div ondragstart="return false;">
<img src="image1.png"/>
<img scr="image2.png"/>
</div>
适用于所有主流浏览器。
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
我在自己的网站http://www.namdevmatrimony.in/上使用了它 这就像魔法一样!!:)
最简单的跨浏览器解决方案是
<img draggable="false" ondragstart="return false;" src="..." />
问题
img {
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
user-drag: none;
-webkit-touch-callout: none;
}
是它不能在firefox中工作吗
为图像设置以下CSS属性:
user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-drag: none;
-webkit-user-select: none;
-ms-user-select: none;
我做的css属性显示在这里以及监视器ondragstart与以下javascript:
handleDragStart: function (evt) {
if (evt.target.nodeName.match(/^(IMG|DIV|SPAN|A)$/i)) {
evt.preventDefault();
return false;
}
},
为此,您可以使用内联代码
<img draggable="false" src="http://www.ourkanpur.com/images/logo.png">
第二个选择是使用外部或页面上的css
img { -moz-user-select:没有; -webkit-user-select:没有; -ms-user-select:没有; 用户选择:没有; -webkit-user-drag:没有; user-drag:没有; -webkit-touch-callout:没有; } < img src = " http://www.ourkanpur.com/images/logo.png " >
两者都正常工作 我在这个网站上使用外部css(点击这里)
答案很简单:
<body oncontextmenu="return false"/> -禁用右键单击 <body ondragstart="return false"/> -禁用鼠标拖动 <body ondrop="return false"/> -禁用鼠标下落
jQuery:
$('body').on('dragstart drop', function(e){
e.preventDefault();
return false;
});
您可以将主体选择器替换为任何其他容器,以防止子容器被拖放。
这是用JQuery实现的一种优雅方式
$("body").on('mousedown','img',function(e){
e.stopPropagation();
e.preventDefault();
});
on函数向选定的元素攻击一个或多个事件的事件处理程序函数