Javascript 可拖动元件
拖放 // 滴管{ 显示:内联块; 保证金:50px 10px 10px 50px; 垂直对齐:顶部; 背景色:555; 边框:1px实心111; -moz边界半径:10px; 边界半径:10px; -moz转换:所有200ms线性; -webkit转换:所有200ms线性; -o型过渡:所有200ms线性; 过渡:所有200ms线性; } .悬停{ -moz盒阴影:0 30px rgba0,0,0,0.8插入; 盒影:0 0 30px rgba0,0,0,0.8嵌入; } .拖拉{ 显示:内联块; 保证金:20px 10px 10px 20px; 填充顶部:20px; 宽度:60px; 高度:30px; 颜色:3D110F; 背景色:822520; 边框:4px实心3D110F; 文本对齐:居中; 字号:1em; 光标:移动; -moz转换:所有200ms线性; -webkit转换:所有200ms线性; -o型过渡:所有200ms线性; 过渡:所有200ms线性; -moz用户选择:无; -khtml用户选择:无; -webkit用户选择:无; 用户选择:无; } 区块1 区块2 区块3 var x=document.queryselectoral.dropper'; x[0].样式.高度=600px; x[0].style.width=200px; x[1].样式.高度=600px; x[1].style.width=999px; 作用{ 变量dndHandler={ draggedElement:null,//Propriétépointantvers lélémenten cours deéplacement applyDragEvents:functionelement{ element.draggable=true; var dndHandler=this;//变量est nécessaire pour que lévénement«dragstart»ci dessous accède facilement au namespace«dndHandler» 元素。addEventListener'dragstart',函数E{ dndHandler.draggedElement=e.target;//关于sauvegarde l'lélément的课程安排 e、 dataTransfer.setData'text/plain',;//Nécessaire pour Firefox },假; }, applyDropEvents:功能滴管{ 滴管。添加了监听器“dragover”,函数E{ e、 preventDefault;//在自动恢复删除数据时 this.className='dropper drop_hover';//Et on the appilique le style adéquaténotre zone de drop quand unélément la survole },假; dropper.addEventListener'dragleave',函数{ this.className='dropper';//关于上一篇文章的风格 }; var dndHandler=this;//变量est nécessaire pour que lévénement«drop»ci dessous accède facilement au namespace«dndHandler» dropper.addEventListener'drop',函数E{ var目标=e.target, draggedElement=dndHandler.draggedElement,//Récupération de lélélément concerné clonedElement=draggedElement.cloneNodetrue;//关于克隆的复制 而target.className.indexOf'dropper'==-1{//Cette boucle permet de remonter jusqu'la zone de drop parente target=target.parentNode; } Talk.CordNe=“滴管”;//应用DU风格 clonedElement=target.appendChildclonedElement;//A退出行动区 dndHandler.applyDragEventsclonedElement;//新的应用程序用于克隆节点 draggedElement.parentNode.removeChildCloneElement;//抑制源代码 }; } }; var elements=document.queryselectoral'.draggable', elementsLen=elements.length; 对于变量i=0;iJavascript 可拖动元件,javascript,jquery,html,css,Javascript,Jquery,Html,Css,拖放 // 滴管{ 显示:内联块; 保证金:50px 10px 10px 50px; 垂直对齐:顶部; 背景色:555; 边框:1px实心111; -moz边界半径:10px; 边界半径:10px; -moz转换:所有200ms线性; -webkit转换:所有200ms线性; -o型过渡:所有200ms线性; 过渡:所有200ms线性; } .悬停{ -moz盒阴影:0 30px rgba0,0,0,0.8插入; 盒影:0 0 30px rgba0,0,0,0.8嵌入; } .拖拉{ 显示:内联
你测试过Draggably插件吗?它很棒,功能齐全。我认为你的问题可以用一些方法来解决 可以在网格上拖动、父元素、拖动限制和事件操纵
祝你好运 你介意添加HTML吗?和
甚至可能创建一个?我创建了一个可运行的代码段。我开始使用html/css/jquery/jscript进行编程。所以这是某种学校作业?我正在实习,我应该创建一个应用程序网站来制作类似Grafcet的东西。就像在代码段中一样,一个块包含工具和一个块,我们可以在其中放置工具并将它们相互链接。还有一个按钮,它将根据工具的顺序生成脚本。谢谢您的回答。我试过了,但没用。我会尽力澄清我的问题。我想要的是这样的东西:我想我有自己的想法,但我不知道怎么做。如果拖动位置更高,例如50px top和200px left{$function{$dg1.draggable;};};},这意味着当我将元素拖动到右侧块时,它变成了可拖动的,这将允许我将它们放到任何我想要的地方。或者有没有一种方法可以给克隆的元素一个类,这样我就可以对它们应用我想要的函数?好吧,您当前的代码没有使用任何库,$。不过,可拖动的似乎是jQuery UI。我建议您要么用纯JS编写代码,要么使用该库创建一些东西,以保持代码干净、可读/易懂。我重写了我的答案,因为我意识到您并没有真正拖拉任何东西,只有浏览器拖。谢谢您,我只使用jQuery重写了代码。我将把它作为一个片段。我还有一个小问题。我会在回答中解释的。我看不出Draggably插件和普通jQuery之间有什么区别