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 ...
随机推荐
- 关于stm32优先级大小的理解
转载自:https://www.cnblogs.com/ZKeJun/p/6112591.html 一. 组别:0>1>2>3>4 组别优先顺序(第0组优先级最强,第4组优 ...
- POJ - 3660 Cow Contest(传递闭包)
题意: n个点,m条边. 若A 到 B的边存在,则证明 A 的排名一定在 B 前. 最后求所有点中,排名可以确定的点的个数. n <= 100, m <= 4500 刚开始还在想是不是拓扑 ...
- 启动Chrome浏览器弹出“You are using an unsupported command-line flag –ignore-certificate-errors. Stability and security will suffer”
采用如下代码: public static void launchChrome() { System.setProperty("webdriver.chrome.driver", ...
- [每日app二]月入60万多嘛?单词锁屏的潜力!
抢了用户的时间,就是抢了用户的金钱! 单词锁屏,一个开发难度不太大,但仅仅360手机助手下载就是每周4万!拉风- 对于搞app的同学来说,搞个锁屏,还不是玩似的,但是要定位好,玩得好,那就有难度了.最 ...
- day01_01.了解php
1.了解PHP 第一个程序 echo 'hello world'; 和python的区别,python是 print (hello world) 并且python结尾没有;2.X版本不需要加括号,但是 ...
- javascript学习笔记 - 引用类型 基本包装类型
六 基本包装类型 Boolean,Number,String 这三个引用类型亦称为基本包装类型,与基本的数据类型boolean,number,string相关联.为了方便操作这些基本类型的数据. 引用 ...
- 九度oj 题目1349:数字在排序数组中出现的次数
题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均 ...
- HDU——1163Eddy's digital Roots(九余数定理+同余定理)
Eddy's digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- struts2的一些功能
一.interceptor拦截器 1.自定义拦截器 public class Cus_Emp_Interceptor implements Interceptor { public String in ...
- 【CCF】高速公路 tarjan强连通缩点
[题意] 给定一个有向图,问图中互相可达(强连通)的点有多少对 [AC] 强连通缩点,缩点后是一个DAG,所以互相可达的点只在强连通块里. #include<iostream> #incl ...