<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>拖拽</title><style>html,body{margin: 0;padding: 0;height: 100%;width: 100%;}div{width: 200px;height: 200px;background-color: greenyellow;position: absolute;}</style>
</head>
<body><div></div><script>var div=document.querySelector("div");div.addEventListener("mousedown",mouseMoveHandler);var browerWidth = document.body.clientWidth ;var browerHeight =document.body.clientHeight ;function mouseMoveHandler(e) {if(e.type==="mousedown"){e.preventDefault();document.point={x:e.offsetX,y:e.offsetY};document.div=this;document.addEventListener("mousemove",mouseMoveHandler);document.addEventListener("mouseup",mouseMoveHandler);}else if(e.type==="mousemove"){this.div.style.top=e.clientY-this.point.y+"px";this.div.style.left=e.clientX-this.point.x+"px";if(this.div.offsetLeft<0){this.div.style.left=0+"px";}if(this.div.offsetTop<0){this.div.style.top=0+"px";}if(this.div.offsetTop+this.div.clientHeight>browerHeight){this.div.style.top=browerHeight-this.div.clientHeight+"px";}if(this.div.offsetLeft+this.div.clientWidth>browerWidth){this.div.style.left=browerWidth-this.div.clientWidth+"px";}}else if(e.type==="mouseup"){// if(e.clientY-this.point.y<50 && e.clientX-this.point.x<50){//     this.div.style.left=0+"px";//     this.div.style.top=0+"px";// }if(e.clientX-this.point.x<50){this.div.style.left=0+"px";}if(e.clientY-this.point.y<50){this.div.style.top=0+"px";}if(browerHeight-this.div.offsetTop-this.div.clientHeight<50){this.div.style.top=browerHeight-this.div.clientHeight+"px";}if(this.div.offsetLeft+this.div.clientWidth>browerWidth-50){this.div.style.left=browerWidth-this.div.clientWidth+"px";}//松手移除事件this.removeEventListener("mousemove",mouseMoveHandler);this.removeEventListener("mouseup",mouseMoveHandler);}}</script>
</body>
</html>

JS实现拖拽 不出浏览器 距边50px吸附相关推荐

  1. 李炎恢 js教程 拖拽上 思路解析

    李炎恢再讲js教程 拖拽上 讲到一个登录框,通过鼠标移动登录框到浏览器各个地方,我们现在对李炎恢的怎么想出进行分析: 问题期望是什么? 1.我们通过鼠标点击登录框,然后登录框被移动,松开鼠标,停止移动 ...

  2. html5 原生拖拽,原生JS实现拖拽效果

    这篇文章主要为大家详细介绍了原生JS实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了JS实现拖拽效果的具体代码,供大家参考,具体内容如下 ...

  3. 原生JS实现拖拽进度条、滚动鼠标显示相应的内容

    今天要分享的是运用原生JS实现拖拽进度条.滚动鼠标显示相应的内容,实现效果如下: 以下是代码实现,欢迎大家复制粘贴. <!DOCTYPE html> <html><hea ...

  4. js实现拖拽+碰撞+重力

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  5. js 鼠标拖拽改变div宽度高度

    js 鼠标拖拽改变div宽度高度, <!DOCTYPE html> <html><head><meta charset="UTF-8" / ...

  6. 原生js实现拖拽上传文件

    原生js实现拖拽上传文件 <!DOCTYPE html> <html lang="en"><head><meta charset=&quo ...

  7. 原生JS实现拖拽垂直进度条

    先看效果图 代码如下 <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" ...

  8. 原生JS实现拖拽翻书特效

    给大家分享一个用原生JS实现的拖拽翻书效果图,效果如下: 效果还不错吧,当然还需要两个图片. 1.书本封面. 2.书页 实现代码如下,欢迎大家复制粘贴. <!DOCTYPE html> & ...

  9. web使用panzoom.js 缩放拖拽 工程图cad图

    web使用panzoom.js 缩放拖拽 工程图cad图 前言 第一步下载图片转换工具 将cad的dwg转换为svg 第二步 普通的cad 转换后 大概4-5M 如果直接放入html 加载会很缓慢 需 ...

最新文章

  1. Python之父重回决策层,未来如何发展?
  2. thinkpad密码忘记
  3. 浅谈.Net异步编程的前世今生----APM篇
  4. 计算机台式右上角三个灯作用,键盘右上角的三个灯是什么?有什么用
  5. 远东传动收购机器人_一张图为你总结最近5年在机器人领域收购案例
  6. http statusCode 500状态码
  7. C语言中一个指针传递问题的分析
  8. 91期:2016阿里安全峰会重点资料新鲜开放,不能错过
  9. PAT (Basic Level) Practice1004 成绩排名
  10. 排序算法(三) —— 直接插入排序
  11. jQuery扩展半Lambda表达式 类似Linq的Where
  12. html 判断IE版本并加载对应的css,js
  13. 三星java游戏下载_轻松游戏 三星Z500安装java游戏详细教程
  14. 最新高级流量卡官网源码附教程
  15. diablo2oo2’s Universal Patcher 中文汉化绿色破解版下载
  16. 高频电子线路_实验一:调谐放大器
  17. OBS+SRS+centos7搭建局域网直播推流服务器
  18. 知乎在港上市破发是必然:周源被“打脸”,增长极其依赖营销
  19. 服务器上怎么强制删除文件夹,Windows10系统强制删除文件的方法
  20. c语言美元符号用法,R函数()中美元符号“$”的含义是什么?

热门文章

  1. pythonscrapy爬虫ip代理池_在Scrapy中使用IP池或用户代理(python3)
  2. 恒源云(GPUSHARE)_GPU服务器租用 | Spyder连接使用教程
  3. templete inheritance
  4. Cyrus Beck(参数化)裁剪算法基于opengl实现
  5. 2018最新(传智黑马)前端从基础班到就业班(视频+资料)
  6. Win7中laragon安装教程
  7. android 中报Merging Errors
  8. Spring Cloud Ribbon负载均衡策略详解
  9. Flume Sinks
  10. 初刷【洛谷P2181对角线】题解心得