您知道如何单击HTML元素(主要是图像),然后在屏幕上拖动它们的“阴影版本”吗?
比如看到堆栈溢出徽标?如果您单击并拖动它,您可以在屏幕上移动它的深色版本。
所以我的问题是,有没有办法消除拖拽HTML元素,主要是图像?
发布于 2012-09-14 19:51:49
这是浏览器的一个功能。这是一个快捷方式,使保存图像到您的本地硬盘驱动器更容易。有三种方法可以修复或解决此问题:
div
-div
属性设置为所需的图像。背景是不可拖动的,所以这将会做你想要的。div
,并使用绝对定位和z索引将它定位在图像上。这个方法维护起来比较麻烦,但是在你的布局中可能更容易实现。document.getElementById('my-image').ondragstart = function() { return false; };
将‘my- ...change’添加到您的图像元素的ID中,就完成了。但是这个选项不是一个好主意,因为它依赖于Javascript,并不是所有的浏览器都支持Javascript。
作为一个脚注,如果你试图阻止你的图片被保存--别费心了。无论有没有任何客户端保护,抓取图像都很容易。
发布于 2012-09-14 19:57:46
假设,我们应该能够用CSS user-select
property.做到这一点,然而,浏览器对它的支持是有限的,而且是不规则的。在我的测试中,它阻止了选择文本的出现,但根本不能阻止图像的拖动。现在,您需要使用一种变通方法,如使用背景图像,如上所述。
FWIW,应用以下内容以删除正文中所有文本项的可选性,或有选择地将其与特定选择器一起使用,以禁用对特定元素的选择/拖动:
body {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
https://stackoverflow.com/questions/12430990
复制