知识点总结

鼠标拖拽原理:

1、鼠标按下后开始移动,鼠标抬起停止移动,即onmousedown中要包括onmousemove和onmouseup

2、获取位置的计算:获取鼠标的当前位置-鼠标在物体中的位置(当值不变),可通过ev.clientX(鼠标到可视区) - obj.offsetLeft(物体到可视区)来计算

注意事项:

1、为了防止鼠标移动的过快,需要onmousemove和onmouseup前面使用document

2、因为浏览器自带有对文字移动,对你的移动产生的冲突,因此:

  在标准浏览器下,需要阻止浏览器的默认行为,即return false;

  在IE下,在onmousedown中使用setCapture(),获取全局捕获,在onmouseup中使用releaseCapture(),释放全局捕获

  setCapturn和releaseCapture只对IE有获,因此还要判断一下,即:

  if (obj.setCapture) {

    obj.setCapture();

  }

扩展:

  限制拖拽范围和磁性吸附

碰撞原理:

  采用九宫格方式,用四角来进行比较判断是否碰撞。

拖拽改变大小:

1、设定四个边的位置

2、鼠标点击判断在哪个边上

3、在右边或下边,改变宽度或高度,在左边或上边,还需要改变left和top的值,宽度变小,left变大(数值变化是相等的)

  鼠标down下去时,要把鼠标位置、left/top值、width/height的值都保存起来。

  鼠标移动的距离=鼠标当前值 - 鼠标down下去保存起来的值。

  width= 原始的width  +/-  鼠标移动的距离,其他同理,关键是计算鼠标移动的距离。

滚动条拖拽:

例子一:控制物体的大小

  

例子二:控制文字滚动

  

转载于:https://www.cnblogs.com/joya0411/p/3567215.html

[妙味DOM]第五课:事件深入应用相关推荐

  1. [妙味Ajax]第三课:AJAX跨域解决方案:JSONP

    知识点总结: JSONP(JSON with Padding): 1.script标签 2.用script标签加载资源是没有跨域问题的 在资源加载进来之前定义好一个函数,这个函数接收一个参数(数据), ...

  2. 妙味课堂——HTML+CSS(第一课)

    一句话,还记忆不如烂笔头,何况还这么笨,记下笔记,也是记录这一路学习的过程. 妙味课堂第一课并未一味地先讲HTML,而是穿插着CSS讲解,这一点不同于一些其他视频,这一点挺特别的!所以这一课涉及到HT ...

  3. Javascript第五章location对象第五课

    ECMAScript参考:https://blog.csdn.net/qq_30225725/article/details/88621180 DOM参考:Javascript第五章window对象的 ...

  4. 妙味课堂——JavaScript基础课程笔记

    集中时间把秒微课堂JS的基础课程看完,并且认真完成了课后练习.感觉在JS方面的技能算是入了个门了.课后练习的作业完成的代码我都汇总在了这里.至于视频课的学习笔记,则记录如下. 第01课JS入门基础_热 ...

  5. 妙味课堂cctv移动端项目

    2019独角兽企业重金招聘Python工程师标准>>> 项目介绍 妙味课堂仿cctv项目 移动端准备工作 viewport 这里根据psd,宽度为640,所以使用了下面的meta & ...

  6. Linux 探索之旅 | 第三部分第五课:延时执行,唯慢不破

    -- 作者 谢恩铭 转载请注明出处 内容简介 第三部分第五课:延时执行,唯慢不破 第三部分第六课预告:第三部分测验题 延时执行,唯慢不破 上一课 Linux探索之旅 | 第三部分第四课:后台运行及合并 ...

  7. 盒子模型代码_果冻公开课第五课:五分钟理清盒模型的前世今生

    果冻公开课第五课:五分钟理清盒模型的前世今生 在前端程序员眼中,页面其实可以被视为一个个盒子组成的 那么,这些盒子是如何构建起整个页面的呢? 动画视频: 如何理解盒子模型 文字解析: 在上一节里面 我 ...

  8. 妙味课堂ajax教程,妙味课堂JS高级专题篇视频资料分享

    <妙味课堂JS高级专题篇视频教程>将向大家详细介绍javascript,javascript是一种直译式脚本语言,也是一种广泛用于客户端Web开发的脚本语言.目前,被数百万计的网页用来改进 ...

  9. 妙味课堂——HTML+CSS基础笔记

    妙味课堂的课程讲得非常的清楚,受益匪浅.先把HTML和CSS基础课程部分视频的学习笔记记录如下: padding #PS基础 ##前端需要的PS技能 - PS技能(前端需要):切图.修图.测量 - P ...

最新文章

  1. android oppo 权限,OPPO Reno可尝鲜Android Q:教程如下
  2. 关于webservice的经典理解
  3. Selenium+TestNG+Jenkins 框架图形化UML表示
  4. IBM T410 打开AHCI模式
  5. C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
  6. Docker 的4种网络模式
  7. 计算机考研调剂规则,21考研调剂规则大变化,这类学生不能调剂!
  8. license是什么_云数据库时代,AWS凭什么执牛耳?
  9. hibernate集合类型映射
  10. LNMP架构的搭建--源码编译(MYSQL,PHP,nginx)
  11. 什么是mixin,为什么它们有用?
  12. CSS overflow属性与display属性
  13. HTML5移动开发即学即用(双色)
  14. 74. PHP 计数器
  15. 高糊马赛克秒变高清,「脑补」面部细节,表情帝:这还是我吗?
  16. 服务器2008系统提权工具,提权教程:winserver2008R2溢出提权
  17. RFC8998+BabaSSL---让国密驶向更远的星辰大海
  18. 简单解析一下,实施MES管理系统后有哪些效益
  19. 写点什么好呢2? 钱、事业、婚姻、人生意义
  20. Unity Gerstner Waves(模拟大海波浪)

热门文章

  1. LeetCode:Find Peak Element - 寻找一个数组内的顶点
  2. python 面试题 -------------- get 和 post 请求的 区别
  3. bash 历史记录_这些提示使Bash历史记录更加有用
  4. wtf是转换ttf_WTF入门,它是终端的仪表板
  5. 法语写信_为我们写信:我们最热门的19个主题
  6. dns 服务器 linux_在Linux上构建自己的DNS服务器
  7. openstack 功能_2016年OpenStack的新功能:看一下Newton版本
  8. 软件开发安全性_开发具有有效安全性的软件的最佳方法
  9. 开源软件生态_基础,亮点和建立成功的开源生态系统
  10. Three.js 基础