首页 > 编程 > JavaScript > 正文

基于jQuery实现拖拽图标到回收站并删除功能

2019-11-20 11:10:18
字体:
来源:转载
供稿:网友

本文利用jQuery实现一个拖拽删除桌面小图标的功能,使用起来就像操作系统的回收站一样,我们只需要拖动应用图标至垃圾箱即可删除这个图标,分享给大家,具体实现方法如下

运行效果图:

引入核心文件
这里需要引入jquery,jquery ui,与jquery ui css

<link rel="stylesheet" href="assets/css/jquery-ui.css" /><script src="js/jquery/1.8.3/jquery.min.js"></script><script src="js/jqueryui/1.9.2/jquery-ui.min.js"></script>

构建html

<div id="main"> <div class="folder">  <div class="front"></div>  <div class="back"></div> </div>  <img src="assets/48px/box.png" style="top:340px;left:100px;" alt="box" />   <img src="assets/48px/calculator.png" style="top:340px;left:170px;" alt="calculator" />   <img src="assets/48px/clipboard.png" style="top:340px;left:240px;" alt="clipboard" />   <img src="assets/48px/console.png" style="top:340px;left:310px;" alt="console" />   <img src="assets/48px/basketball.png" style="top:340px;left:380px;" alt="basketball" />   <img src="assets/48px/facebook.png" style="top:400px;left:100px;" alt="facebook" />   <img src="assets/48px/gift.png" style="top:400px;left:170px;" alt="gift" />   <img src="assets/48px/id_card.png" style="top:400px;left:240px;" alt="id card" />   <img src="assets/48px/imac.png" style="top:400px;left:310px;" alt="imac" />   <img src="assets/48px/system_monitoring.png" style="top:400px;left:380px;" alt="system monitoring" /> </div>

核心CSS样式
没有CSS3基础的朋友,请先了解下CSS3,要不下面的CSS会吃力

/*----------------------------  CSS3文件夹-----------------------------*/   .folder {  /* This will enable the 3D effect. Decrease this value    * to make the perspective more pronounced: */     -webkit-perspective: 800px;  -moz-perspective: 800px;  perspective: 800px; /*镜头距离800PX*/     position: absolute;  top: 50%;  left: 50%;  z-index: 0;     width: 160px;  height: 120px;  margin: -100px 0 0 -60px;} .folder div{  width:150px;  height:115px;     background-color:#93bad8;     /* 3D变化保留元素的位置 */  -webkit-transform-style: preserve-3d;  -moz-transform-style: preserve-3d;  transform-style: preserve-3d;     /*平滑的动画过渡 */  -webkit-transition:0.5s;  -moz-transition:0.5s;  transition:0.5s;      /*禁止用户选中元素*/  -webkit-user-select: none;   -moz-user-select: none;   user-select: none;      position:absolute;  top:0;  left:50%;  margin-left:-75px;}  .folder .front{     /*圆角,X轴3D转换30度 */  border-radius:5px 5px 0 0;  -moz-transform:rotateX(-30deg);  -webkit-transform:rotateX(-30deg);  transform:rotateX(-30deg);      /*定义在X轴与Y轴的位置 */  -moz-transform-origin:50% 100%;  -webkit-transform-origin:50% 100%;  transform-origin:50% 100%;      /*定义渐变效果 */  background-image: -moz-linear-gradient(top, #93bad8 0%, #6c9dc0 85%, #628faf 100%);  background-image: -webkit-linear-gradient(top, #93bad8 0%, #6c9dc0 85%, #628faf 100%);  background-image: linear-gradient(top, #93bad8 0%, #6c9dc0 85%, #628faf 100%);      /*定义阴影 */  box-shadow:0 -2px 2px rgba(0,0,0,0.1), 0 1px rgba(255,255,255,0.35) inset;     z-index:10;     font: bold 26px sans-serif;  color: #5A88A9;  text-align: center;  text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.1);  line-height: 115px;} .folder .back{   /*定义渐变效果 */  background-image: -webkit-linear-gradient(top, #93bad8 0%, #89afcc 10%, #5985a5 60%);  background-image: -moz-linear-gradient(top, #93bad8 0%, #89afcc 10%, #5985a5 60%);  background-image: linear-gradient(top, #93bad8 0%, #89afcc 10%, #5985a5 60%);     /*定义圆角*/  border-radius:0 5px 0 0;  /*定义阴影 */  box-shadow:0 -1px 1px rgba(0,0,0,0.15);}  /*在.back前加上内容 */.folder .back:before{  content:'';  width:60px;  height:10px;  border-radius:4px 4px 0 0;  background-color:#93bad8;  position:absolute;  top:-10px;  left:0px;  box-shadow:0 -1px 1px rgba(0,0,0,0.15);}  /*在.back后加上内容 */.folder .back:after{  content:'';  width:100%;  height:4px;  border-radius:5px;  position:absolute;  bottom:5px;  left:0px;  box-shadow:0 4px 8px #333;} .folder.open .front{ /*3D转换50度 */  -moz-transform:rotateX(-50deg);  -webkit-transform:rotateX(-50deg);  transform:rotateX(-50deg);}  /*----------------------------  Draggable Icons-----------------------------*/ #main img{  position:absolute;  cursor:move;}

写入JS

$(function() {   var folder = $("#main .folder"),  //文件夹    front = folder.find('.front'), //文件夹前面部分    img = $("#main img"), //容器main中的所有图片    droppedCount = 0;  //记数器   img.draggable(); //使所有图片可以拖拽   folder.droppable({ //droppable事件,即拖拽到文件夹时触发的事件    drop : function(event, ui) {//释放时触发             // 移动拖拽的图片      ui.draggable.remove();             // 给计数器加1      front.text(++droppedCount);           },         activate : function(){ //拖拽时让文件夹打开             folder.addClass('open');    },         deactivate : function(){ //停止拖拽时让文件夹关闭      folder.removeClass('open');    }  });});

源码下载:jQuery实现可拖拽删除小图标回收站功能

以上就是实现拖拽图标到回收站并删除功能的教程,感谢亲们的耐心阅读,希望对大家的学习有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表