Javascript 我怎样才能使它不存在;“鬼魂”;当我在Firefox中拖动图像时?

Javascript 我怎样才能使它不存在;“鬼魂”;当我在Firefox中拖动图像时?,javascript,css,templates,effect,Javascript,Css,Templates,Effect,拖动图像时,按住鼠标时会出现一个半透明的重影图像 有什么方法可以应用CSS/JS来消除特定部分的这种效果吗?您可以尝试使用CSS背景图像,而不是带有img标记的实际图像。恐怕这是浏览器的行为/功能。我不确定是否有任何特定的FF CSS样式可以处理这个问题 您可能需要修改Firefox的代码,以拥有自己的Firefox。如果您正在寻找一些非编程方式的方法,我想您必须在superuser.com中发布:P在浏览器中禁用该功能的唯一方法(它在Safari中执行相同的操作)是从img元素(或event.

拖动图像时,按住鼠标时会出现一个半透明的重影图像


有什么方法可以应用CSS/JS来消除特定部分的这种效果吗?

您可以尝试使用CSS背景图像,而不是带有img标记的实际图像。

恐怕这是浏览器的行为/功能。我不确定是否有任何特定的FF CSS样式可以处理这个问题


您可能需要修改Firefox的代码,以拥有自己的Firefox。如果您正在寻找一些非编程方式的方法,我想您必须在superuser.com中发布:P

在浏览器中禁用该功能的唯一方法(它在Safari中执行相同的操作)是从

img
元素(或
event.preventDefault()
上的
onmousedown
事件返回
false
)并使用javascript处理其余的拖动操作


几乎每个主要的JavaScript库都支持“拖拽”和“拖拽”。您可以使用他们的代码作为起点,或者如果您已经在使用页面上的库,就直接使用它。

about:config
中有一个Firefox选项来关闭此选项-
nglayout。启用拖动图像-
,但显然这只适用于您。我猜你想为所有访客移除它

如果您想进行拖放,可以尝试使用其他JS库?你应该能够很容易地移动其他元素,你可以使用蒂姆在其中一个元素上说的背景图像


另一个优点是可以使用CSS精灵效果来减少HTTP请求。我使用jQuery UI创建了一个示例,它实际上只是一个图像,但看起来像几个图像。

您需要从
ondragstart
事件返回false。我自己也有这个问题,我就是这样解决的。这也是IE7中的一个问题。问题在于IE的拖放api、html5的标准化以及firefox随后的实现


其他关于使用javascript库进行拖放的建议是行不通的。(我已经在使用jquery UI了),因为这是firefox中最近的一件事,而jquery UI似乎没有考虑到这一点。

只需在图像中添加属性
draggable=“false”
。另外,添加一个容器
div

例如


最简单的方法是将非常大的
x
y
坐标设置为
setDragImage
远离屏幕。例如:

element.addEventListener('dragstart', function(event) {
    event.dataTransfer.setDragImage(element, -99999, -99999);
}, false);

传递给
setDragImage
的实际元素实际上并不重要。为了方便起见,我们在这里使用了相同的元素。

您希望它做什么呢?在阅读了答案后,我意识到问题的解释很少。我喜欢将图像直接从FF拖到文件夹中保存。我只是觉得OP想要的是同样的东西,只是没有鬼魂p如果您需要支持IE 11及更低版本,则这不是一个解决方案。IE不支持SetDragage。这是一个很好的答案。。。!最好的解决方案!还有一艘客轮!
function handleDragStart(e) {
  // other code
  var dragIcon = document.createElement('img');
  dragIcon.src = 'another/image/path.png';
  e.dataTransfer.setDragImage(dragIcon, -10, -10);
  // other code
}
element.addEventListener('dragstart', function(event) {
    event.dataTransfer.setDragImage(element, -99999, -99999);
}, false);