宝哥软件园

JavaScript模拟文件的拖动框样式v1.0示例

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

文件拖动v1.0

当图片不清晰时,请右键单击“在新链接中打开图片”

达到效果

页面布局

实现理念

下型箱

在css样式中设置拖拽框样式,注意设置position: absolute浮动状态。

听p #容器的鼠标按下事件,得到起始坐标。当鼠标被按下时,通过append()方法添加p#selectBox。

鼠标在按下事件后移动,并比较鼠标事件的当前位置。pagex和事件。添加p #选择框左上方坐标的页面

和尺寸宽度/高度。

remove()方法在鼠标离开p #容器或鼠标释放事件后移除p #选择框

收音机

监控li点击事件;

通过li子元素指向lebal。lebal子元素并通过toggleClass()修改背景样式(显示/取消选中);

用这个指向li元素本身,用toggleClass()方法修改背景色;

多(前缀)

监控鼠标按下事件,按下时取消lebal和li现有的勾选样式;

听李说,鼠标在上面移动时,添加样式;

释放鼠标时,移除mouseover事件,使其不会继续被选中;

剩余问题

当拖拽速度快时,会遗漏一些文件,初步判断是代码执行效率低的问题

选择文件作为起点时,有时无法选择文件

如果短暂停留后可以选择文件,则初步判断代码执行效率较低

当您想要单击“检查”按钮时,您可以完成检查,但是单选按钮绑定的click事件与检查的mousedown事件冲突

点击检查按钮将触发鼠标向下的检查,消除选择风格和代码逻辑问题

复选框:的mousedown事件已被解决,以防止$('冒泡。lebal’)。bind ('mousedown ',function (event) {event。stop propagation();})

如果拖动并选中360云盘复选框,然后将鼠标移开,将取消文件的选择,不清楚在哪里添加逻辑

源代码

index.html

!DOCTYPE htmlhtmlhead title/title脚本类型=' text/JavaScript ' src=' http : js/jquery-3 . 2 . 1 . js '/脚本脚本类型=' text/JavaScript ' src=' http : js/script . js '/脚本链接rel='样式表' type=' text/CSS ' href=' CSS/style . CSS ' rel='外部no follow '/Head body Div id=' container ' ul Li Div class=' Div Div class=' file _ name ' pdile list/p/Div/Li Li Div class=' lebal '标签/标签/Div class=' file _ name ' pdile list/p/Div/Li Li Div class=' lebal '标签/标签/Div class=' file _ name ' pdile list/p/Div/Li Li Div class=' lebal '标签/标签/Div class=' file _ name ' pdile list/p/Div/Li Li Div class=' lebal '标签/标签/Div class=' file '

* { margin : 0;padd : 0;}车身{ height : 700 pxborder : 1 px黑色固体;} # SelectBox {边框: 1px实心# 89d 9ff背景-color: rgba(137,217,255,0.5);绝对位置:显示器:块;} #容器{ margin-top : 100px;边距-左侧: 200像素;宽度: 1200像素;高度: 600像素;border: 1px红色固体;-网络工具包-用户-选择:无;蚊子用户-选择:无;-ms-用户-选择:无;用户选择:无;} ul { margin : 20px } Li { width : 100%;高度: 40px边框-top: 1px #ddd实心;列表样式:无;}标签{background: url('./images/lebal.png ')不重复;背景-位置: 0 0;宽度: 15px高度: 15px余量: 12.5磅自动;显示器:块;}.toggleLebalClass {背景-位置: 0-52px;}.toggleLiClass { background : # eeeff;}.lebal { width: 40px高度: 40px向左浮动:}.file _ name { width : 80%;高度: 40px向左浮动:} p {行高: 40px}script.js

使用"严格";var x,y;$(function() { //点选$('li ').绑定(' click '),函数(事件){ $(this).孩子们勒巴尔' .儿童()。toggle class(' toggle alclass ');$(这个)。toggleClass(' toggleLiClass ');});//复选$('.勒巴尔' .bind('mousedown ',function(event){ event。stopperpagation();}) //拖选$(“# container”).鼠标向下(函数(事件){ x=事件。第x页;y=event.pageY$('#container ').追加(' div id=' SelectBox '/div ');$('li ').孩子们勒巴尔' .儿童()。移除类(' ToggleLebalClass ');$('li ').移除类(' toggleLiClass ');$('li ').bind('mouseover ',function() { $(this).孩子们勒巴尔' .儿童()。添加类(' ToggleLebalClass ');$(这个)。添加类(' toggleLiClass ');});}).鼠标移动(函数(事件){ $('#selectBox ').css({ left: event.pageX x?x :事件。页面x,top:事件。佩吉。y : event.pageY,width : math。ABS(事件。pagex-x),高度:数学。ABS(事件。pagey-y)});}).mouseup(函数(事件){ $('#selectBox ').移除();$('li ').解除绑定(“鼠标悬停”);})$(“# container”).mouseleave(函数(){ $('#selectBox ').移除();})});以上这篇Java脚本语言模拟文件拖选框样式v1.0的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

更多资讯
游戏推荐
更多+