仿回收站效果的设计与实现

仿回收站效果的设计与实现

功能要求:
使用HTML5拖放API相关技术,在网页上实现仿回收站的类似效果。用户通过拖拽可以将页面上的元素放置到回收站中删除。
实现效果:
在这里插入图片描述

一、界面设计核心技术概括
1.使用<div>标签划分区域
1)文件展示区域
2)回收站区域

2.使用<div>标签制作示例文件
2)4个示例文件
在这里插入图片描述

二、文件拖拽与回收功能的实现
1.文件拖拽的实现

<div class="folder" draggable="true" >文件1</div>

2.将回收站设置为可放置区域

<div id="recycle" ondragover="allowDrop(event)" ></div>
 //ondragover事件回调函数
    function allowDrop(ev) {
        //解禁当前元素为可放置被拖拽元素的区域
        ev.preventDefault();
    }

3.回收功能的实现

<div id="file1" class="folder" draggable="true" ondragstart="drag(event) " >文件1</div>
//ondragstart事件回调函数
    function drag(ev) {
        //设置传递的内容为被拖拽元素的id名称,数据类型为纯文本类型
        ev.dataTransfer.setData("text/plain", ev.target.id);
    }
<div id="recycle" ondragover="allowDrop(event)" ondrop="drop(event)" ></div>
    //ondrop事件回调函数
    function drop(ev) {
        ev.preventDefault(); //解禁当前元素为可放置被拖拽元素的区域
        var id = ev.dataTransfer.getData("text"); //获取当前被放置的元素id名称
        var folder = document.getElementById(id); //根据id名称获取元素对象
        //获取文件夹区域并删除该元素对象
        document.getElementById("container").removeChild(folder);
    }

三、完整代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>HTML5拖放API之回收站效果</title>
  <link rel="stylesheet" href="css/recycle.css">
    </head>
    <body>
        <h3>HTML5拖放API之回收站效果</h3>
        <hr />
  <!--文件展示区域-->
        <div id="container">
            <div id="file1" class="folder" draggable="true" ondragstart="drag(event)">
                文件1
            </div>
            <div id="file2" class="folder" draggable="true" ondragstart="drag(event)">
                文件2
            </div>
            <div id="file3" class="folder" draggable="true" ondragstart="drag(event)">
                文件3
            </div>
            <div id="file4" class="folder" draggable="true" ondragstart="drag(event)">
                文件4
            </div>
        </div>
  <!--回收站区域-->
        <div id="recycle" ondragover="allowDrop(event)" ondrop="drop(event)"></div>
        <script>
      //ondragstart事件回调函数
            function drag(ev) {
    //设置传递的内容为被拖拽元素的id名称,数据类型为纯文本类型
                ev.dataTransfer.setData("text/plain", ev.target.id);
            }
            //ondragover事件回调函数
   function allowDrop(ev) {
    //解禁当前元素为可放置被拖拽元素的区域
                ev.preventDefault();
            }
            //ondrop事件回调函数
   function drop(ev) {
    //解禁当前元素为可放置被拖拽元素的区域
                ev.preventDefault();
    //获取当前被放置的元素id名称
                var id = ev.dataTransfer.getData("text");
    //根据id名称获取元素对象
                var folder = document.getElementById(id);
    //获取文件夹区域并删除该元素对象
                document.getElementById("container").removeChild(folder);
            }
        </script>
    </body>
</html>

备注:CSS代码见附件
https://download.csdn.net/download/YQEMMMM/12982765

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值