js/jq仿window文件夹框选操作插件
0.先给大家看看效果:
1.创建一个index.html文件
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
 | 
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        ul{list-style: none}        li{width:200px;margin:10px;float:left;height: 100px;background: #ccc;border: 1px solid #fff;}        .selected{border: 1px solid red}    </style>    <script src="./jquery-1.12.4.min.js"></script></head><body>     <ul class='clearfix test' >         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <li><img src="" alt=""></li>         <div style="clear: both"></div></ul></body></html> | 
2.引入插件areaSelect.js
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
 | 
    (function($){        $.fn.areaSelect=function(option){            var opt={}            opt=$.extend(opt,option);            var _this=$(this);            _this.on('mousedown',function (e) {                console.log(_this)                _this.find('li').removeClass('selected');                var startTop=e.pageY;                var startLeft=e.pageX;                var endTop,endLeft;                var selectBox=$('<div id="select-box"></div>');                $('body').append(selectBox);                selectBox.css({'position':'absolute', 'top':startTop+'px', 'left':startLeft+'px', 'background':'rgba(255,106,23,0.3)', 'transition':'all 0s', 'width':0, 'height':0, 'z-index':10})                $(document).on('mousemove',function (e) {                    e.preventDefault();                    endTop=e.pageY;                    endLeft=e.pageX;                    if(e.pageY-startTop>0 && e.pageX-startLeft>0){                        var height=e.pageY-startTop;                        var width=e.pageX-startLeft;                        selectBox.css({                            'width':width+'px',                            'height':height+'px'                        })                    }else if(e.pageY-startTop<0 && e.pageX-startLeft<0) {                        var height=-(e.pageY-startTop);                        var width=-(e.pageX-startLeft);                        selectBox.css({                            'width':width+'px',                            'height':height+'px',                            'top':e.pageY+'px',                            'left':e.pageX+'px'                        })                    }else if(e.pageY-startTop>0 && e.pageX-startLeft<0) {                        var height=(e.pageY-startTop);                        var width=-(e.pageX-startLeft);                        selectBox.css({                            'width':width+'px',                            'height':height+'px',                            'top':startTop+'px',                            'left':e.pageX+'px'                        })                    }else if(e.pageY-startTop<0 && e.pageX-startLeft>0) {                        var height=-(e.pageY-startTop);                        var width=(e.pageX-startLeft);                        selectBox.css({                            'width':width+'px',                            'height':height+'px',                            'top':e.pageY+'px',                            'left':startLeft+'px'                        })                    }                    _this.find('>li').each(function () {                        if((startLeft<$(this).offset().left+$(this).width() && $(this).offset().left<endLeft && $(this).offset().top<endTop && $(this).offset().top+$(this).height()>startTop && (e.pageY-startTop>0 && e.pageX-startLeft>0)) ||                            (endLeft<$(this).offset().left+$(this).width() && $(this).offset().left<startLeft && $(this).offset().top<startTop && $(this).offset().top+$(this).height()>endTop && (e.pageY-startTop<0 && e.pageX-startLeft<0)) ||                            (endLeft<$(this).offset().left+$(this).width() && $(this).offset().left<startLeft && $(this).offset().top<endTop && $(this).offset().top+$(this).height()>startTop && (e.pageY-startTop>0 && e.pageX-startLeft<0)) ||                            (startLeft<$(this).offset().left+$(this).width() && $(this).offset().left<endLeft  && $(this).offset().top<startTop && $(this).offset().top+$(this).height()>endTop && (e.pageY-startTop<0 && e.pageX-startLeft>0)) ){                            $(this).addClass('selected');                            return;                        }else {                            $(this).removeClass('selected');                        }                    })                })                $(document).on('mouseup',function () {//                         if(opt.do) opt.do();  执行毁掉函数或者,钩子函数                    $('#select-box').remove();                    $(document).unbind('mousemove');                })            })        }    })(jQuery) | 
3.调用插件
在index.html的body最下面添加下面代码:
| 
 1 
2 
3 
4 
5 
6 
 | 
<script>    $(function () {        $('.test').areaSelect()    })</script> | 
打开index.html查看效果吧!!!!
js/jq仿window文件夹框选操作插件的更多相关文章
- js/jq仿window文件夹移动/剪切/复制等操作
		
1.先看下效果吧! 2.在添加一个index.html <!DOCTYPE html> <html lang="en"> <head> < ...
 - js上传整个文件夹
		
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...
 - js能否上传文件夹
		
文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...
 - VBS 选择文件夹框
		
VBS 选择文件夹框 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 on error resume Next Const ...
 - java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络]
		
java+js实现展示本地文件夹下的所有图片demo[申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/46364875
 - Python对文件和文件夹的高级操作模块shutil
		
shutil模块提供了许多关于文件和文件夹的高级操作. 特别提供了支持文件复制和删除的功能. # 将文件对象fsrc的内容复制到文件类对象fdst.length(可选参数)是缓冲区大小 shutil. ...
 - python文件、文件夹的相关操作
		
python文件.文件夹的相关操作 #1.rename()可以完成对文件的重命名 #rename(需要修改的文件名,新的文件名) import os os.rename("readme.tx ...
 - idea--忽略隐藏文件、文件夹的设置操作
		
文章由来 公司同事在群里问了个问题,如下: 为了大家看清,将图特意贴出来: 这人还删除idae重装了下,哈哈,才到群里问的. 解决思路(按顺序) 1.我让他直接拉会,共享桌面我给看了下,首先是open ...
 - 原生js实现在表格用鼠标框选并有反选功能
		
今天应同学要求,需要写一个像Excel那样框选高亮,并且实现框选区域实现反选功能.要我用原生js写,由于没什么经验翻阅了很多资料,第一次写文章希望各位指出不足!! 上来先建表 <div clas ...
 
随机推荐
- UVa - 12096 集合栈计算机(STL)
			
[题意] 有一个专门为了集合运算而设计的“集合栈”计算机.该机器有一个初始为空的栈,并且支持以下操作:PUSH:空集“{}”入栈DUP:把当前栈顶元素复制一份后再入栈UNION:出栈两个集合,然后把两 ...
 - 金阳光Android自动化测试第一季
			
第一季:http://www.chuanke.com/v1983382-106000-218422.html 第一节:Android自动化预备课程基础(上) 1. 基于坐标点触屏:monkey ...
 - Mysql登陆、退出、更改环境编码
			
登录: mysql -h[数据库地址] -u[username] -p[password] -P[端口] //大写P表示端口,小写p表示密码 例如:mysql -hlocalhost -uroot ...
 - P2014 选课(树形背包)
			
P2014 选课 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之前学习.现在有N门功课,每门课有 ...
 - loj2256 「SNOI2017」英雄联盟
			
真的是裸背包啊-- #include <iostream> #include <cstdio> using namespace std; typedef long long l ...
 - python - web自动化测试  - 文件上传操作
			
# 12. 上传操作## (1)如果是input可以直接输入路径的,直接使用send_keys输入路径# (2)非input标签的,需要借助第三方工具:# A. AutoIt : 调用其生成的au3或 ...
 - 缓存淘汰算法之FIFO
			
前段时间去网易面试,被这个问题卡住,先做总结如下: 常用缓存淘汰算法 FIFO类:First In First Out,先进先出.判断被存储的时间,离目前最远的数据优先被淘汰. LRU类:Least ...
 - 【JavaScript】关于 eval()执行JavaScript语句的一次实验测试
			
实验主题: eval() 函数可以计算某个字符串,并执行其中的 JavaScript 代码.该函数只接受原始字符串作为参数,如果 string 不是原始字符串,那么该方法将不作任何的改变的返回.因此请 ...
 - [python学习篇][书籍学习][python standrad library][内建类型]之数值
			
数值类型 — int, float, long, complex 有四种不同的数值类型:普通整数.长整数.浮点数和复数 普通整数(或者简称整数)使用C中的long实现,其精度至少为32位(sys.ma ...
 - EF知识和经验
			
AsNoTracking提高查询性能 AsNoTracking的作用就是在查询的时候不做追踪,这样会查询的更快,但是这样做会有一个缺陷(不能对查询的数据做修改操作). var student2 = d ...
 
			
		