js和jq仿window文件夹移动、剪切、复制等操作实例讲解

window对文件夹的操作主要包括移动/剪切/复制,本篇文章主要用jquery来实现,下面一起来了解一下把。本文主要介绍了js/jq仿window文件夹移动/剪切/复制等操作代码,非常具有实用价值,需要的朋友可以参考下。希望能帮助到大家。

1.先看下效果吧!

js和jq仿window文件夹移动、剪切、复制等操作实例讲解

2.在添加一个index.html

nbsp;html>    Title    ul{list-style: none;min-height: 100px;min-width: 100px;background: #eee;}  li{width:200px;margin:10px;float:left;height: 200px;background: #ccc;border: 1px solid #fff;overflow: hidden}  .selected{border: 1px solid red}  

登录后复制    

        js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    js和jq仿window文件夹移动、剪切、复制等操作实例讲解    

   

3.添加插件

上一篇文章里面有 areaSelect.js 框选插件,用于我们框选我们要移动的内容,没有看的同志可以去上一篇复制过来。

添加 OptionFile 操作对象

var OptionFile=(function (opt) {      var o={        width:100,  //        height:100,        gapWidth:2      };      var o = $.extend(o,opt),        _body=$('body'),        boxBg='

',        movingBox='

';      return {        actionLock:false, //移动锁定        releaseTarget:false, //释放锁定        keyCode:null,  //当前按键 键值        //鼠标按下操作        optionDown:function ( selectFile , type , evt ) {          this.releaseTarget=false;          this.getImgList(selectFile);          var currentX=evt.pageX;          var currentY=evt.pageY;          $('.moving-box').css({            top:currentY+10,            left:currentX+10          })        },        //鼠标移动操作        optionMoving:function (selectFile , type , evt ) {          if(this.actionLock){            this.optionDown(selectFile , type , evt );          }        },        getImgList:function (selectFile) {          var length = selectFile .length,            imgWidth = o.width-10-(length)*o.gapWidth,            imgHeight = o.height-10-(length)*o.gapWidth;          if(!this.actionLock){            _body.append(movingBox);            $('.moving-box').append(boxBg);            $.each(selectFile,function (k, v) {              var img = 'js和jq仿window文件夹移动、剪切、复制等操作实例讲解';              $('.moving-box').append(img);            });          }          this.actionLock=true;        },        //放开鼠标操作(回调函数,返回按键键值和当前目标)        closeOption:function (func) {          var _this= this;          $(document).keydown(function (event) {            _this.keyCode=event.keyCode;            $(document).on('mouseup',function (e) {              if(!_this.releaseTarget){                $('.moving-box').remove();                _this.actionLock=false;                $(document).unbind('mousemove');                _this.releaseTarget=true;                func(e,_this.keyCode);         //返回当前 释放的 目标元素 , 和按键code                $(document).unbind('keydown');                _this.keyCode=null;              }            })          });          $(document).trigger("keydown");          $(document).keyup(function (event){            $(document).unbind('keyup');            $(document).unbind('keydown');            _this.keyCode=null;          })        }      }    })

登录后复制

4.绑定函数和操作

$(function () {  $(function () {    $('.test').areaSelect()  //框选操作  })   var optionImg= new OptionFile();   $('.test li').on("mousedown",function(e){     if($(this).hasClass('selected')) {       e.preventDefault();       e.stopPropagation();     }     var firstImg = $(this).find('img'),       currentList=$('.test li.selected img'); //框选的图片list,用于移动的时候显示     currentList.push({src:firstImg.attr('src')}); //移动时候的第一张图片     var loop = setTimeout(function () {       optionImg.optionDown(currentList,1,e );       $(document).mousemove(function (e) {         optionImg.optionMoving(currentList,1,e);         optionImg.closeOption(function (e,keycode) {           var target=$(e.target);  //目标位置 可以判断目标不同位置执行不同操作           console.log(keycode);   //拖拽放开时候是否有按键 keycode 按键的值  可以通过不同的 keycode 来执行不同操作           target.prepend($('.test li.selected'))         });       });     },200);     $(document).mouseup(function () {       clearTimeout(loop);     });   });})

登录后复制

OK!  现在可以看效果了,插件可以自己扩张和修改。

上面 可以 keycode 不同按键值  完成不同的操作,如 移动、剪切、复制、粘贴等。。

相关推荐:

js实现仿window系统日历效果

仿windows遍历目录

js模仿windows桌面图标排列算法具体实现(附图)_javascript技巧

以上就是js和jq仿window文件夹移动、剪切、复制等操作实例讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2789631.html

(0)
上一篇 2025年3月8日 18:45:33
下一篇 2025年2月28日 03:42:45

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS监控关闭浏览器操作的实例详解

    这篇文章主要介绍了js监控关闭浏览器操作的实例详解的相关资料,希望通过本大家能帮助到大家,对js感兴趣的朋友可以参考下本篇文章 JS监控关闭浏览器操作的实例详解 需求如下: 用户关闭浏览器通知后台。 方案如下: 1.采用js监控关闭浏览器操…

    编程技术 2025年3月8日
    200
  • js封装成插件_Canvas统计图插件编写实例_javascript技巧

    下面小编就为大家带来一篇js封装成插件_canvas统计图插件编写实例。小编觉得挺不错的,现在就分享js源码给大家,也给大家做个参考。对js感兴趣的一起跟随小编过来看看吧 之前就说过,我想写一个canvas画统计图的插件,现在写好了 先说下…

    2025年3月8日
    200
  • 详谈javascript最长公共子序列

    最长公共子序是从给定的两个序列x和y中取出尽可能多的一部分字符,按照它们在原序列排列的先后次序排列得到。lcs问题的算法用途广泛,如在软件不同版本的管理中,用lcs算法找到新旧版本的异同处;在软件测试中,用lcs算法对录制和回放的序列进行比…

    2025年3月8日 编程技术
    200
  • JS+canvas绘制的动态机械表动画效果

    这篇文章主要介绍了js+canvas绘制的动态机械表动画效果,涉及javascript结合html5 canvas简单数值计算与动态绘图相关操作技巧,对javascript感兴趣的朋友可以参考下本篇文章 本文实例讲述了JS+canvas绘制…

    编程技术 2025年3月8日
    200
  • JS+canvas动态绘制饼图的方法示例

    这篇文章主要介绍了js+canvas动态绘制饼图的方法,结合具体实例形式分析了js+canvas实现饼状图形绘制的相关操作技巧,对javascript感兴趣的朋友可以参考下本篇文章。 运行效果图如下: 完整代码: nbsp;html>…

    2025年3月8日
    200
  • JavaScript实现向select下拉框中添加和删除元素实例分享

    本文主要介绍了javascript实现向select下拉框中添加和删除元素的方法,涉及jquery中append()与remove()方法动态操作表单元素的相关技巧,需要的朋友可以参考下,希望能帮助到大家。 本文实例讲述了JavaScrip…

    2025年3月8日
    200
  • 关于jQuery.cookie.js使用方法及相关参数详解

    本文主要和大家分享一个轻量级的cookie 插件用法,可以读取、写入、删除 cookie。这篇文章主要介绍了jquery.cookie.js使用方法及相关参数解释,需要的朋友可以参考下,希望能帮助到大家。 cookie操作需要上传到服务器才…

    编程技术 2025年3月8日
    200
  • JS实现多物体运动实例分享

    本文主要介绍了js实现多物体运动的方法,结合实例形式较为详细的分析了javascript实现多物体运动的原理与相关操作技巧,需要的朋友可以参考下,希望能帮助到大家, 基本步骤 1.通过getElementsByTagName获取到要做多物体…

    2025年3月8日
    200
  • JS运动改变单物体透明度实现方法

    本文主要介绍了js运动改变单物体透明度的方法,结合实例形式分析了页面元素属性动态修改相关操作技巧,需要的朋友可以参考下,希望能帮助到大家 除了通过改变物体的 宽,高,letf,top位置或者是运动方向来实现物体运动效果之外,改变物体的透明度…

    编程技术 2025年3月8日
    200
  • JS实现多物体运动的方法详解

    这篇文章主要介绍了js实现多物体运动的方法,结合实例形式较为详细的分析了javascript实现多物体运动的原理与相关操作技巧,对javascript感兴趣的朋友可以参考下本篇文章 本文实例分析了JS实现多物体运动的方法。分享给大家供大家参…

    2025年3月8日
    200

发表回复

登录后才能评论