javascript - HTML5 setDragImage() : dragIcon. 宽度什么都不做

标签 javascript html drag-and-drop draggable

当使用 HTML5 拖放 API 时,虽然 .width 属性似乎对用作拖动图标的图像宽度没有影响。以这个 fiddle 为例:http://jsfiddle.net/cnAHv/7/ .您可以将 dragIcon.width 设置为您想要的任何值,它不会改变图标的​​实际宽度。

网络上的大多数资源似乎都随意将dragIcon.width 设置为100。这只是人们在不检查功能的情况下互相复制代码的问题吗?

所以...

  1. 图像变量的宽度属性实际上是 setDragImage() 会接受的东西吗?
  2. 如果不是,您将如何设置图标的宽度而不用在 photoshop 等程序中手动更改图像大小?

最佳答案

当您使用 <img>setDragImage Javascript 将只使用实际的图像位图数据,忽略其他属性,如 width . Check the specs .

但是如果你这样做:

function handleDragStart(e) {
    var dragIcon = document.createElement('img');
    dragIcon.src = 'http://jsfiddle.net/favicon.png';
    dragIcon.width = '100';
    var div = document.createElement('div');
    div.appendChild(dragIcon);
    document.querySelector('body').appendChild(div);
    e.dataTransfer.setDragImage(div, -10, -10);
}

http://jsfiddle.net/cnAHv/9/

您会看到拖动阴影现在包含更大的图像。发生这种情况是因为当我们使用其他可见的 HTML 元素时(这就是我将 DIV 附加到主体的原因),浏览器会将其呈现的 View 用作拖动图像。

关于javascript - HTML5 setDragImage() : dragIcon. 宽度什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26346905/

相关文章:

javascript - 如何在jquery中根据鼠标单击一张一张地显示多个图像

gwt - GWT拖放如何在放置事件中获取小部件源

javascript - FIrebase jQuery .on 方法正在逐一更新数组值,而不是一次全部更新

php - 是我的循环逻辑错误还是我的查询错误?

javascript - HTML 标签在 CanJS 中使用 Mustache 模板进行转义

ios - 如何将图像拖放到删除图标上以删除图像?

.net - 控制台应用程序的拖放事件处理程序

javascript - 如何使用指针事件仅对滚动事件使用react?

javascript - 从对象中提取值

javascript - 如何在jquery中实现mouseleave