利用jQuery实现回收站删除效果

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: 0;

    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:0;
    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: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);
}

.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实现回收站删除效果,布布扣,bubuko.com

时间: 2024-10-22 04:41:58

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

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

$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").find("td:nth-child(3)") 3表示获取每行的第三列 今天在项目中,刚好用到给指定的table添加一行.删除一行,就直接找google,搜出来的东西不尽如人意,不是功能不好就是千篇一律,简直浪费时间还不讨好,于是乎就自己动手封装个,现就把代码分享出来,避免大伙重复造轮子,如

利用jQuery如何删除一个节点

利用jQuery如何删除一个节点:添加或者删除节点是常用的操作,本章节介绍一下如何删除一个节点,当然在jQuery中删除节点的函数不止一个,不过这里就介绍一下如何使用remove()函数实现此功能,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.soft

利用jQuery实现垂直菜单和水平菜单效果

1 利用jQuery实现垂直菜单 1.1 创建VerticalMenu.html文件,内容如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <link href="vertical.css" rel="stylesheet"> <script src="jquery-1

利用removeChild制作简单的倒序删除效果【jsDEMO】

[功能说明] 利用removeChild制作简单的倒序删除效果 [HTML代码说明] <ul class="list" id="list"> <li class="in">1</li> <li class="in">2</li> <li class="in">3</li> <li class="in"

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

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍利用jQuery Tags Input 插件显示选择记录. 我在利用jQuery Tags Input 插件之前,一直想找一个合适的J

如何利用jquery.1.9版本判断浏览器的版本类型

如何利用jquery.1.9版本判断浏览器的版本类型:在jquery.1.9以前的版本,可以使用$.browser很轻松的判断浏览器的类型和版本,但是在1.9中和以后的版本中,$.browser已经被删除,下面就介绍一下如何实现此功能,希望能够给需要的朋友带来帮助.一.自定义代码: $.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase()); $.browser.webkit = /webkit/.test(navi

利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚至也整合了类似的功能.jQuery 库简化了此类复杂 JavaScript 交互的编写,随着 jQuery UI 的引入,这项功能得到了进一步的简化,该库以易于访问的 jQuery 插件的形式提供了常用用户界面类型. 本文介绍了如何利用 Ajax 和 jQuery UI 创建具有各种定制功能的高度可

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

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍利用jQuery Tags Input 插件显示选择记录. 我在利用jQuery Tags Input 插件之前,一直想找一个合适的J

利用jquery制作网页导航定位

我们在日常浏览网站中,由于网站包含信息量大,例如购物网站中会有许多商品.那么对于这样的情况,往往会有导航栏来帮助我们迅速的找到自己想要的信息.例如图中所示,左侧是商品列表,右侧是商品分类导航栏. 我们现在需要做到的效果是: 1.点击某个商品分类,自动跳转至具体的商品列表. 2.在鼠标滚动浏览商品的同时,根据左侧的商品信息的变化情况,右侧的分类名称会自动标红.表示现在浏览的商品正是该分类下的商品. 实现的基本思路: 1.设置锚点.在导航栏的<a>标签中,设置"href"属性为