当前位置: 首页 > 知识库问答 >
问题:

控制HTML5拖放效果的外观

申屠秦斩
2023-03-14

有没有一种方法可以使用HTML5拖放API来控制“你正在拖放的东西”的外观?

通常情况下,任何可拖动的HTML元素都是半透明的,并跟随光标直到停止/拖放为止。我想控制它,这样我就可以从元素内的任何地方开始拖动,但当你真正开始拖动时,我只能有一个小图像跟随光标,光标在哪里。

实际的例子是:一个要拖动的事物列表,每一个都是一个小图像和一些文本的名称,你将拖动到它的一边。我希望能够在元素中的任何地方开始拖动图像或文本,但只有图像跟随光标,并直接在光标的下方,而不是从你开始拖动它的地方偏移。

我可以想出几种方法来欺骗它(一个隐藏的元素,它出现在鼠标光标所在的地方,当你开始拖动时,它就是你实际拖动的东西),或者求助于经典的Javascript拖放。

谢谢

共有1个答案

李胡媚
2023-03-14

我认为.setdragimage(element,x,y);可能就是您要找的。

function handleDragStart(e) {
    var dragIcon = document.createElement('img');
    dragIcon.src = 'http://...';
    dragIcon.width = 100;
    e.dataTransfer.setDragImage(dragIcon, x, y);
}

this.addEventListener('dragstart', handleDragStart, false);

此处的示例:jsfiddle.net/cnahv/

 类似资料:
  • #div1, #div2 {float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;} function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData("Tex

  • 该类被用于提供一个拖放交互。 代码示例 const controls = new DragControls( objects, camera, renderer.domElement ); // add event listener to highlight dragged objects controls.addEventListener( 'dragstart', function ( eve

  • 本文向大家介绍javascript实现拖放效果,包括了javascript实现拖放效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享的是一个拖放的效果,参考的代码,重构以下,加以理解学习。 首先来看效果: 拖动div       拖放状态:未开始  【程序说明】 拖动原理:其实就是在拖动块上监听mousedown事件,鼠标点击时,通过事件对象获取对应的坐标参数。然后鼠标移动时再监听d

  • 场景:我正在使用HTML5拖放功能在我编写的游戏中放置磁贴。我想添加一个效果,在我将要放置新磁贴的两个磁贴之间稍微分开一点,以表明这就是你要放置的位置(类似于Mac OS dock)。 我的方法:我有一个,我把这些瓷砖放进去。我写了一个函数,它基本上返回一个正弦波的一个周期,我用它来更新掉落的图块的和CSS属性(图块是),基于它们在期间相对于鼠标的原始位置。 问题:在Chrome中(但不是在Fir

  • 我正在使用本机拖放html5 api开发拖放界面。我们已经在其他部分使用了jQuery拖动,但是它在这个特定部分的表现很差,所以我们使用原始的JavaScript。 本质上,标记看起来像这样... 我为“dragstart”创建一个addEventListener并运行以下函数 它将我的类完美地应用于原始元素,但我似乎不能移动原始元素。浏览器创建克隆/幽灵图像...我看到你可以创建自己的图像显示,

  • 本文向大家介绍JavaScript实现拖拽和缩放效果,包括了JavaScript实现拖拽和缩放效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript实现拖拽和缩放效果的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。