温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用HTML5+CSS3实现拖放功能

发布时间:2021-09-01 17:08:54 来源:亿速云 阅读:105 作者:chen 栏目:web开发

这篇文章主要介绍“怎么用HTML5+CSS3实现拖放功能”,在日常操作中,相信很多人在怎么用HTML5+CSS3实现拖放功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用HTML5+CSS3实现拖放功能”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

本文简单介绍一下HTML5的拖放实现。
拖放(Drag 和 drop)是 HTML5 标准的组成部分。
浏览器支持:Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

被拖元素,dragElement :
(1)添加事件:ondragstart
(2)添加属性:dragable

放置元素,dropElement:
1、添加事件:ondargenter , ondragover , ondragleave , ondragend ,ondrop
和mouser划入划出一类的事件很类似,字面也很好理解,不赘述了,下面会用例子来说明。

2、页面上元素间的拖放
下面用个小例子,div间的拖放来展示,各个事件如何被触发:

代码如下:

<html>
   <title></title>
   <meta charset="utf-8">
   <style type="text/css">
       #dropEle
       div
       {
           float: left;
       }
   </style>
   <script src="./js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script>
   <script type="text/javascript">
       /**
        * 拖放(Drag 和 drop)是 HTML5 标准的组成部分。
        * 浏览器支持
        *Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。
        */
       $(function ()
       {
           $("#dragEle")[0].ondragstart = function (event)
           {
               console.log("dragStart");
               event.dataTransfer.setData("Text", event.target.id);
           };
           /**
            * 当放置被拖数据时,会发生 drop 事件。
            * 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
            * @param event
            */
           $("#dropEle")[0].ondrop = function (event)
           {
            /*   for (var p in event.dataTransfer)
               {
                   console.log(p + " = " + event.dataTransfer[p] + " @@");
               }
           */
               console.log("onDrop");
               var id = event.dataTransfer.getData("Text");
               $(this).append($("#" + id).clone().text($(this).find("div").length));
               event.preventDefault();
           };
           /**
            * ondragover 事件规定在何处放置被拖动的数据。
            *默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
            */
           $("#dropEle")[0].ondragover = function (event)
           {
               console.log("onDrop over");
               event.preventDefault();
           }
           $("#dropEle")[0].ondragenter = function (event)
           {
               console.log("onDrop enter");
           }
           $("#dropEle")[0].ondragleave = function (event)
           {
               console.log("onDrop leave");
           }
           $("#dropEle")[0].ondragend = function (event)
           {
               console.log("onDrop end");
           }
       });
   </script>
<div  draggable="true" id="dragEle">
</div>
<div  id="dropEle"></div>

系统中选择的一个或多个文件拖入该div中,files中会存储拖入文件的信息,然后我们通过file可以得到文件的类型,长度,内容然后实现上传。

3、setDragImage(image, x, y)用于设置鼠标移动过程中随鼠标一起移动的效果图。必须在dragstart中设置。

4、types,effectAllowed和dropEffect分别是拖入元素的类型,拖拽过程中鼠标显示的样式,不过通常可以忽略这几个属性,一般用不到。

到此,关于“怎么用HTML5+CSS3实现拖放功能”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI