热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过JS模拟Win10桌面的拖拉框选,只实现了一个方向的框选,如何实现多方向的框选呢

如题,目前只能往右下角拖拉,而不能往其他方向拉,我想实现Win10桌面一模一样的拖拉,不知道算法改怎么写了。下面是已经写好的JS,有大佬看下怎么改进,才能实现和Win10桌面一样的

如题,目前只能往右下角拖拉,而不能往其他方向拉,我想实现Win10桌面一模一样的拖拉,不知道算法改怎么写了。

下面是已经写好的JS,有大佬看下怎么改进,才能实现和Win10桌面一样的拖拉呢

[Javascript]

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
var Mil = false;

var NewDiv = document.createElement('div');



function getMousePos(event) {

    var e = event || window.event;

    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;

    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;

    var x = e.pageX || e.clientX + scrollX;

    var y = e.pageY || e.clientY + scrollY;

    return { 'x': x, 'y': y };

}

function  Mi(e) {

    document.body.appendChild(NewDiv);

    NewDiv.id = 'Move_div';

    move_div = document.getElementById("Move_div");

    var m_down_x = getMousePos(e).x;

    var m_down_y= getMousePos(e).y;

    move_div.style.left = m_down_x + "px";

    move_div.style.top = m_down_y + "px";

    move_div.style.width = m_down_x - parseInt(move_div.style.left) +"px";

    move_div.style.height = m_down_y - parseInt(move_div.style.top) +"px";

    Mil = true;



}

function move(e){

    if(Mil){

        move_div = document.getElementById("Move_div");

        var m_move_x = getMousePos(e).x;

        var m_move_y= getMousePos(e).y;

        move_div.style.width = m_move_x - parseInt(move_div.style.left) +"px";

        move_div.style.height = m_move_y - parseInt(move_div.style.top) +"px";

    }

}

function up(){

    Mil = false;

    document.body.removeChild(document.getElementById("Move_div"));

}

[Html]

1

[Css]

1
2
3
4
5
#Move_div{

    background-color: rgba(162, 204, 242, 0.35);

    box-shadow: 0 0px 0.1px 0 rgba(255, 255, 255, 0.88);

    position: fixed;

}

相关地址:
https://blog.lfio.net/


推荐阅读
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • DOM事件大全
    1.事件:js与html的交互就是通过事件的,观察者模式2.事件流:从页面中接收事件的顺序IE::事件冒泡流,事件冒泡,事件从最具体的元素接收,然后逐级向上传播,主流浏览器都支持N ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Android获取app应用程序大小的方法
    Android获取app应用程序大小的方法-Android对这种方法进行了封装,我们没有权限去调用这个方法,所以我们只能通过AIDL,然后利用Java的反射机制去调用系统级的方法。 ... [详细]
  • 【爬虫】关于企业信用信息公示系统加速乐最新反爬虫机制
    ( ̄▽ ̄)~又得半夜修仙了,作为一个爬虫小白,花了3天时间写好的程序,才跑了一个月目标网站就更新了,是有点悲催,还是要只有一天的时间重构。升级后网站的层次结构并没有太多变化,表面上 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 涉及的知识点-ViewGroup的测量与布局-View的测量与布局-滑动冲突的处理-VelocityTracker滑动速率跟踪-Scroller实现弹性滑动-屏幕宽高的获取等实现步 ... [详细]
  • html结构 ... [详细]
  • java.lang.Class.getDeclaredMethod()方法java.lang.Class.getDeclaredMethod()方法用法实例教程-方法返回一个Met ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Vue2.5开发去哪儿网App从零基础入门到实战项目相关的知识,希望对你有一定的参考价值。第1章课程介绍本章 ... [详细]
author-avatar
倩女碧海蓝天_979
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有