HTML5拖放实际效果的完成编码

日期:2021-02-24 类型:科技新闻 

关键词:公众号小程序,小程序正规价格表,微信群签到小程序,网络抽签小程序,个人做小程序需要什么

拖放

拖放是1种普遍的特点,即抓取目标之后拖到另外一个部位。

在 HTML5 中,拖放是规范的1一部分,任何元素都可以拖放。

Internet Explorer 9+, Firefox, Opera, Chrome, 和 Safari 适用拖拽。

留意:Safari 5.1.2不适用拖拽.

案例:

<!DOCTYPE html>  
<html>  
<head>  
    <title>拖放</title>  
    <style type="text/css">  
        #div1{width:360px;height:220px;padding:20px;border:1px solid black;}  
    </style>  
    <script>  
        function allowDrop(ev) {  
            ev.preventDefault();  
        }  
        function drag(ev) {  
            ev.dataTransfer.setData("Text", ev.target.id);  
        }  
        function drop(ev) {  
            ev.preventDefault();  
            var data = ev.dataTransfer.getData("Text");  
            ev.target.appendChild(document.getElementById(data));  
        }  
    </script>  
</head>  
<body>  
    <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>  
    <br />  
    <img id="drag1" src="img/bg_1.jpg" draggable="true" ondragstart="drag(event)"  width="300px" height="180px" />  
</body>  
</html>  

最先,以便使元素可拖拽,把draggable 特性设定为 true :<img draggable="true">

随后,要求当元素被拖拽时,会产生甚么。
在上面的事例中,ondragstart 特性启用了1个涵数,drag(event),它要求了被拖拽的数据信息。
dataTransfer.setData() 方式设定被拖数据信息的数据信息种类和值:

function drag(ev)
{
    ev.dataTransfer.setData("Text",ev.target.id);
}

在这个事例中,数据信息种类是 "Text",值是可拖拽元素的 id ("drag1")。

ondragover 恶性事件要求在何处置放被拖拽的数据信息。
默认设置地,没法将数据信息/元素置放到别的元素中。假如必须设定容许置放,大家务必阻拦对元素的默认设置解决方法。
这要根据启用 ondragover 恶性事件 event.preventDefault() 方式event.preventDefault()

当置放被拖数据信息时,会产生 drop 恶性事件。
在上面的事例中,ondrop 特性启用了1个涵数,drop(event):

function drop(ev)
{
    ev.preventDefault();
    var data=ev.dataTransfer.getData("Text");
    ev.target.appendChild(document.getElementById(data));
}

编码解释:

启用 preventDefault() 来防止访问器对数据信息的默认设置解决(drop 恶性事件的默认设置个人行为是以连接方式开启)
根据 dataTransfer.getData("Text") 方式得到被拖的数据信息。该方式将回到在 setData() 方式中设定为同样种类的任何数据信息。
被拖数据信息是被拖元素的 id ("drag1")
把被拖元素追加到置放元素(总体目标元素)中

往返拖拽:

若要在两个地区往返拖拽,只需将上面编码稍作改动就可以了.
将body中的编码改为:

<body>  
    <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">  
    <img id="drag1" src="img/bg_1.jpg" draggable="true" ondragstart="drag(event)"  width="300px" height="180px" /></div>  
    <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>  
</body>  

随后在style款式中再加#div2便可以了:

<style type="text/css">  
        #div1,#div2{width:360px;height:220px;padding:20px;border:1px solid black;}  
    </style>  

这样便可以完成往返拖放了。

以上便是本文的所有內容,期待对大伙儿的学习培训有一定的协助,也期待大伙儿多多适用脚本制作之家。