jQuery是一款非常强大的Javascript脚本库,我们开发者喜欢jQuery的原因除了它代码简洁外,更多的是因为jQuery插件非常丰富。今天我们用一个示例来解说jQuery是如何实现拖拽的。

利用jQuery实现拖拽非常简单,我们直接可以利用jQuery内部封装的拖拽接口即可简单实现在网页上拖拽任意元素。今天我们就利用jQuery的这一特性来实现一个拖拽删除桌面小图标的功能,就像操作系统的回收站一样,我们只需要拖动应用图标至垃圾箱即可删除这个图标,具体可以看下面的DEMO演示。

大家也可以看DEMO演示

下面来简单介绍一下实现这款jQuery拖拽删除小图标的方法流程,主要包括HTML代码、CSS3代码以及jQuery代码。

HTML代码:

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代码。

CSS代码:

.folder {
/* This will enable the 3D effect. Decrease this value
* to make the perspective more pronounced: */ -webkit-perspective: 800px;
-moz-perspective: 800px;
perspective: 800px; position: absolute;
top: 50%;
left: 50%;
z-index:; width: 160px;
height: 120px;
margin: -100px 0 0 -60px;
} .folder div{
width:150px;
height:115px; background-color:#93bad8; /* Enabling 3d space for the transforms */
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d; /* Enabling a smooth animated transition */
-webkit-transition:0.5s;
-moz-transition:0.5s;
transition:0.5s; /* Disable text seleltion on the folder */
-webkit-user-select: none;
-moz-user-select: none;
user-select: none; position:absolute;
top:;
left:50%;
margin-left:-75px;
} .folder .front{
border-radius:5px 5px 0 0; -moz-transform:rotateX(-30deg);
-webkit-transform:rotateX(-30deg);
transform:rotateX(-30deg); -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:; 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);
} .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);
} .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{
-moz-transform:rotateX(-50deg);
-webkit-transform:rotateX(-50deg);
transform:rotateX(-50deg);
} /*----------------------------
Draggable Icons
-----------------------------*/ #main img{
position:absolute;
cursor:move;
}

按照上面的CSS定义,删除小图标的回收站文件夹的外观是3D的,这个要看你浏览器的3D支持情况。

最后是最重要的jQuery代码,真正实现了鼠标拖拽图标,并将其放入回收站,这里引用了jQuery UI的脚本库,熟悉jQuery的朋友应该对jQuery UI不会陌生,这里不再赘述。

jQuery代码:

$(function() {

    var folder = $("#main .folder"),
front = folder.find('.front'),
img = $("#main img"),
droppedCount = 0; img.draggable(); folder.droppable({
drop : function(event, ui) { // Remove the dragged icon
ui.draggable.remove(); // update the counters
front.text(++droppedCount); }, activate : function(){
// When the user starts draggin an icon
folder.addClass('open');
}, deactivate : function(){
// Close the folder
folder.removeClass('open');
}
});
});

通过上面的代码,我们就实现了一个基于jQuery的小图标删除回收站效果,上面只是核心代码,详细代码大家可以下载源代码来研究。源代码下载>>

利用jQuery实现回收站删除效果的更多相关文章

  1. JQuery 实现返回顶部效果

    首先要里了解一下几个知识 $(window).scrollTop() ---滚动条距顶部距离 fadeIn() 方法使用淡入效果来显示被选元素,假如该元素是隐藏的. fadeOut() 方法使用淡出效 ...

  2. 利用jquery给指定的table动态添加一行、删除一行

    转自:http://www.cnblogs.com/linjiqin/p/3148181.html $("#mytable tr").find("td:nth-child ...

  3. 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作

    $("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...

  4. 利用jquery+iframe做一个ajax上传效果

    以下是自学it网--中级班上课笔记 网址:www.zixue.it html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...

  5. 利用jquery.touchSwipe.js实现的移动滑屏效果。

    利用jquery.touchSwipe.js实现的移动滑屏效果. 亲测:兼容ie8及各种浏览器 <script type="text/javascript" src=&quo ...

  6. 利用jquery模拟select效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果。

    查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果. 具体要求如下: ...

  8. 基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  9. 彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器

    彻底抛弃PeopleEditor,SharePoint中利用Jquery Chosen创建新的人员选择器 基于SharePoint平台开发时,人员选择器使用频率是非常高的,但是原生的人员选择器使用太麻 ...

随机推荐

  1. poj1703(种类并查集)

    题意:有两个犯罪集团,现在有两种操作,D [a] [b]表示a和b是属于不同犯罪集团的,A [a] [b] 是询问你a和b的关系,如果ab属于同一个犯罪集团,输出In the same gang.   ...

  2. [转载]生活在 Emacs 中

    Brian Bilbrey2002 年 8 月 20 日发布 教程简介 本教程讲什么? Emacs 是一个流行的无模式文本编辑器,有许多强大的功能.本教程将教您使用 Emacs 的基础知识.为了让您很 ...

  3. centos 配置subversion svn

    Subversion是一个自由,开源的版本控制系统. 1.安装: yum install subversion 2.配置 mkdir -p /var/svn/svnrepos #新建文件夹 svnad ...

  4. 手记:配置IIS服务器,支持sis、SISX、3GP、ADP、AMR、JAD、JAR、MMF、MFM、PMD、UMD等文件下载

    发此博文原因是遇到一个 手机端读取服务器端.amr格式文件失败的例子.   反复测试发现从服务端无法播放,或下载.amr格式的文件.就想到可能是服务器站点托管服务 IIS不支持对.amr格式的解析,意 ...

  5. iOS开发如何在一个透明视图上添加不透明的子控件

    相信很多同学都会遇到过这个问题, 当我们弹出一个半透明的遮盖层时, 又想在遮盖层上加一些子视图, 这个时候如果你的遮盖层设置了alpha属性,  你会惊讶的发现, 加载遮盖层上的所有子控件都是透明了, ...

  6. burpsuite两个变量的爱情故事

    抓包的时候在攻击类型处选择[Cluster bomb] 在payload type这里设置类型为[simple list] 第一个是账号 第二个是密码 分批加载即可

  7. java.io.BufferedOutputStream 源码分析

    BufferedOutputStream  是一个带缓冲区的输出流,通过设置这种输出流,应用程序就可以字节写入到缓冲区中,当缓冲区满了以后再调用底层系统,而不必针对每次字节写入调用底层系统,从而提高系 ...

  8. Android——开机启动功能(Service和BroadcastReceiver)

    BroadcastReceiver(广播接收器):发出广播让服务器去接收 BootReceiver.java package com.example.chenshuai.test321; import ...

  9. .Net中的内存分配问题

    最近在测试的时候,要求测试内存不足的情况.我不想去开很多的程序来占用内存,那样太麻烦了,也不太精确.于是就写一个小程序来占用内存,想法很简单,就是声明一个Byte数组在占用内存,没想到这么简单的想法却 ...

  10. jQuery笔记三——text/html/val/attr/prop

    1.获得内容 三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() ...