师父教的拖动插件

建个页面,把jquery 和一个空的js文件导进来
赵刚华 21:57:43
空的js文件用来写封装的移动的类

赵刚华 21:58:43
出现这种效果,我们就可以开始了

首页写个类
翠 22:03:51
跟上了

赵刚华 22:06:05
定义DragDrop类
赵刚华 22:06:21
这个类是封装的专门作移动的类
赵刚华 22:07:04
都能理解?

玉子 22:09:21

继续

赵刚华 22:09:57

类都有初始化方法

赵刚华 22:10:03

可以定义一个

翠 22:10:44

类跟对象一样吗

翠 22:10:57

写成 function(){}

翠 22:11:05

师父

翠 22:11:12

然后给类添加方法?

赵刚华 22:11:14

类和对象是不同概念

赵刚华 22:11:26

就像人和我们每个人一样

赵刚华 22:11:33

翠 22:11:47

恩恩 我说错了 是类跟函数一样吗

赵刚华 22:12:09
看下会有什么效果

赵刚华 22:12:20

赵刚华 22:12:20

赵刚华 22:12:32

说明这是个类

赵刚华 22:12:37

用new 

翠 22:12:45

哦哦 

赵刚华 22:12:47

弄出来的

赵刚华 22:12:57

说明DragDrop是个类

赵刚华 22:13:12

new 出来的是这个类的对象

赵刚华 22:13:15

m

赵刚华 22:13:25

都能不能理解

赵刚华 22:14:09

体会下new 时,程序的运行顺序

翠 22:14:12

理解 

玉子 22:14:18

理解

翠 22:14:21

恩恩

这个是不是跟函数一样

赵刚华 22:14:59

高亮的代码如果一多这样写太乱

翠 22:15:12

如果我不new

赵刚华 22:15:12

最好是再添加个方法

翠 22:15:21

直接把DragDrop弄过去,就是函数啦

赵刚华 22:15:24

你不new 用不了

赵刚华 22:15:35

这个不是函数

赵刚华 22:16:10

下面添加成员属性时就说明他是类

翠 22:16:12

我没new

赵刚华 22:16:28

翠 22:16:41

赵刚华 22:16:42

函数没有成员变理

赵刚华 22:16:43

赵刚华 22:17:07

这个也不是函数

赵刚华 22:17:31

因为下面的告诉计算机

赵刚华 22:17:37

他有成员变量

翠 22:17:47

哦哦 

翠 22:17:53

师父 什么是成员变量

赵刚华 22:17:54

函数是没有成员变量

赵刚华 22:18:11

类的属性和方法

赵刚华 22:18:20

比如人

赵刚华 22:18:25

有姓名

翠 22:18:25

哦哦 

翠 22:18:31

恩恩 

赵刚华 22:18:45

方法比如有走路

赵刚华 22:18:50

方法是动作

翠 22:18:55

明白了 

赵刚华 22:18:58

属性是名词

翠 22:19:10

师父说的词 好专业~

赵刚华 22:19:10

函数是没有这些

翠 22:19:16

师父继续 恩恩

赵刚华 22:16:42
函数没有成员变理
赵刚华 22:16:43

赵刚华 22:17:07
这个也不是函数
赵刚华 22:17:31
因为下面的告诉计算机
赵刚华 22:17:37
他有成员变量
翠 22:17:47
哦哦
翠 22:17:53
师父 什么是成员变量
赵刚华 22:17:54
函数是没有成员变量
赵刚华 22:18:11
类的属性和方法
赵刚华 22:18:20
比如人
赵刚华 22:18:25
有姓名
翠 22:18:25
哦哦
翠 22:18:31
恩恩
赵刚华 22:18:45
方法比如有走路
赵刚华 22:18:50
方法是动作
翠 22:18:55
明白了
赵刚华 22:18:58
属性是名词
翠 22:19:10
师父说的词 好专业~
赵刚华 22:19:10
函数是没有这些
翠 22:19:16
师父继续 恩恩

赵刚华 22:20:57

可以写成这样

赵刚华 22:21:04

这样条理就清楚

翠 22:21:39
恩恩
赵刚华 22:21:40
给这个类添加init方法

我意思是把他作为初始化方法
赵刚华 22:22:10
只要new 就运行
赵刚华 22:22:38
也是c++和java里的类的构造方法
赵刚华 22:22:54
js里没有,我们就这样模拟
翠 22:23:12
恩恩
玉子 22:23:32

赵刚华 22:25:06
难点来了

赵刚华 22:25:12
设计的难点
赵刚华 22:25:18
先思考下
赵刚华 22:25:31
拖动需要设计一些属性
翠 22:25:33
好难

赵刚华 22:25:33
和方法
翠 22:25:46
上次就思考过了
赵刚华 22:25:54
比如人有姓名,年龄,吃饭,说话等
翠 22:26:12
要判断做拖动 还是右拖动~
赵刚华 22:26:18
同样这个也有

赵刚华 22:26:47

点击拖动的div

赵刚华 22:27:10

方法:
拖动开始
拖动中
拖动结束

翠 22:27:27

恩恩

赵刚华 22:27:28

还有拖动活动范围

赵刚华 22:27:47

我设计得不一定对

翠 22:28:00

拖动开始 拖动结束,不需要结算吧

赵刚华 22:28:08
能不能理解我为什么这样设计
翠 22:28:12
是不是 一直拖动中的时候计算
翠 22:28:20
恩恩

玉子 22:28:45

拖动计算什么?

赵刚华 22:28:52

开始拖动
拖动中
拖动结束

赵刚华 22:29:06

拖动计算位置

赵刚华 22:29:14

改变位置

玉子 22:29:14

哦哦

赵刚华 22:29:25

这样就有移动效果

翠 22:29:30

恩恩

赵刚华 22:29:53

能不能理解我设计得这三个方法

翠 22:30:07

师父 

翠 22:30:14

为什么要算开始跟结束

翠 22:30:24

是拖动的时候 一直计算吧

赵刚华 22:30:32

开始确定初始位置

赵刚华 22:30:45

结束后也有位置

翠 22:30:56

先定义一个全局变量吗

翠 22:31:09

哦哦 

赵刚华 22:31:24

不用全局变量

赵刚华 22:31:42

设计很重要

赵刚华 22:31:47

也就是想法

赵刚华 22:31:48

思想

翠 22:32:10

恩恩 

翠 22:32:22

我上次弄那个刻度 搞了好久 也没搞好

翠 22:32:34

思路乱de

翠 22:32:47

如果思路清晰,肯定能写好

赵刚华 22:34:01

赵刚华 22:37:35
都写好了?
翠 22:39:45
师父 问个问题

??

翠 22:39:58

文本框 如果不获得焦点,是不是不能输入值

赵刚华 22:40:08

是的

翠 22:40:11

能不能表面看上去没有焦点,但是输入了值

赵刚华 22:40:32

我想可以吧,但没做过

翠 22:40:50

哦哦  

赵刚华 22:40:55

也可以不用输入框

翠 22:41:17

那怎么调动键盘

赵刚华 22:41:42

用事件

赵刚华 22:42:06

按键盘事件

赵刚华 22:42:14

改变div内容

赵刚华 22:42:21

也可以实现

赵刚华 22:42:33

就是有点麻烦

翠 22:42:37

恩恩 

赵刚华 22:43:04

能不能想像?

翠 22:43:33

捕捉键盘事件

赵刚华 22:43:42

翠 22:43:46

如果是手机 就不能捕捉 

赵刚华 22:43:47

这样写就麻烦了

翠 22:43:53

必须先调动起来

翠 22:43:55

恩恩 

翠 22:44:06

师父继续 那个我明天再想

翠 22:44:11

赵刚华 22:44:32

再观察下拖动的对话框效果

赵刚华 22:44:42

比如聊天这个对话框

赵刚华 22:44:59

上面一小块点击可以拖动

赵刚华 22:45:04

下面的不能

赵刚华 22:45:09

仔细观察

赵刚华 22:45:11

赵刚华 22:45:19

qq聊天这个对话框

翠 22:45:22

恩恩 是的

赵刚华 22:45:26

或别的

赵刚华 22:45:37

小玉同学?

玉子 22:47:20

只有上面可以喽

是的

赵刚华 22:47:37

所以这个设计进去

赵刚华 22:47:57

定义两个属性

赵刚华 22:48:00

一个柄

赵刚华 22:48:07

一个整个框

赵刚华 22:48:16

整个框是移动的

赵刚华 22:48:40

柄是控制整个框移动

赵刚华 22:48:43

能不能理解?

玉子 22:49:39

什么

赵刚华 22:49:50

可以再设计两个属性

赵刚华 22:50:02

一个是柄,还一个是整个竊口

赵刚华 22:50:08

窗口

玉子 22:50:19

哦哦

赵刚华 22:50:32

这个都能不能想像和理解

赵刚华 22:51:04

拿这个qq对话框来说

翠 22:51:10

玉子 需要好好试试 对话框

赵刚华 22:51:14

移动的是整个窗口

是的
赵刚华 22:47:37
所以这个设计进去
赵刚华 22:47:57
定义两个属性
赵刚华 22:48:00
一个柄
赵刚华 22:48:07
一个整个框
赵刚华 22:48:16
整个框是移动的
赵刚华 22:48:40
柄是控制整个框移动
赵刚华 22:48:43
能不能理解?
玉子 22:49:39
什么
赵刚华 22:49:50
可以再设计两个属性
赵刚华 22:50:02
一个是柄,还一个是整个竊口
赵刚华 22:50:08
窗口
玉子 22:50:19
哦哦
赵刚华 22:50:32
这个都能不能想像和理解
赵刚华 22:51:04
拿这个qq对话框来说
翠 22:51:10
玉子 需要好好试试 对话框
赵刚华 22:51:14
移动的是整个窗口

 

赵刚华 22:54:56

增加这两个属性

玉子 22:55:02

正想说跟前面接不上了,

赵刚华 22:55:05

其实类很好理解

赵刚华 22:55:18

你就想像人和动物

赵刚华 22:55:30

差不多

赵刚华 22:55:42

人和动物都是类

玉子 22:56:01

赵刚华 22:56:15

好了类写到这

赵刚华 22:56:25

我们写个div出来试试

翠 22:56:34

恩恩

赵刚华 22:58:30

 

赵刚华 22:54:56
增加这两个属性
玉子 22:55:02
正想说跟前面接不上了,
赵刚华 22:55:05
其实类很好理解
赵刚华 22:55:18
你就想像人和动物
赵刚华 22:55:30
差不多
赵刚华 22:55:42
人和动物都是类
玉子 22:56:01

赵刚华 22:56:15
好了类写到这
赵刚华 22:56:25
我们写个div出来试试
翠 22:56:34
恩恩
赵刚华 22:58:30

赵刚华 23:03:02
这样这个柄和窗口就可以配置了
赵刚华 23:03:08
灵活了

翠 23:04:21

翠 23:04:34

跟下面的窗口跟手柄

翠 23:04:39

是不是两回事呀 师父

赵刚华 23:04:51

我故意命成一样

赵刚华 23:05:02

赵刚华 23:05:08 
其实是这个参数里的
翠 23:05:14 
故意 干扰我们呀

赵刚华 23:06:17

这样能理解吧

翠 23:07:22

恩恩

赵刚华 23:08:05

现在开始绑事件了

赵刚华 23:08:15

点击柄

赵刚华 23:08:32

所以柄要绑点击鼠标事件

赵刚华 23:08:42

鼠标点击事件

翠 23:09:20
恩恩

赵刚华 23:10:56

一步步来

赵刚华 23:11:00

先这样

翠 23:12:24
恩恩
赵刚华 23:12:56
开拖动的方法里记下点击时的坐标

翠 23:15:37

pagex

翠 23:15:47

是当前的x轴位置吗

赵刚华 23:15:50

这是鼠标点击时的坐标

赵刚华 23:15:59

翠 23:16:19

是鼠标的 不是那个窗口div的吗

赵刚华 23:16:25

赵刚华 23:16:55

明白了吗?

赵刚华 23:17:27

马上就要完了

赵刚华 23:17:31

坚持下

翠 23:17:38

恩恩

玉子 23:18:04

鼠标的是相对页面的?

赵刚华 23:18:13

是的

赵刚华 23:18:19

你们可以想像

玉子 23:18:21

赵刚华 23:18:33

最后坐标减前面的坐标

赵刚华 23:18:39

就是移动的量

赵刚华 23:19:39

(x1, y1) - (x0, y0)

赵刚华 23:20:22

这个能不能理解

翠 23:20:48

鼠标 在这个窗口上的位置

赵刚华 23:21:03

不是在这个窗口

翠 23:21:04

能 

赵刚华 23:21:07

是在整个页面

赵刚华 23:21:11

玉子说得对

赵刚华 23:21:14

是相对页面

玉子 23:21:21

不是说的移动的量么

翠 23:21:25

但是如果点击到页面上 就不会有尺寸呀

赵刚华 23:21:33

页面是一个坐标系

赵刚华 23:21:45

赵刚华 23:21:55

点击柄只是为了触发

赵刚华 23:22:07

捕捉

赵刚华 23:22:19

因为只绑定了柄的事件

翠 23:22:28

那是为了获取 鼠标点击到这个div窗口上的位置

赵刚华 23:22:30

但事件的坐标是相对页面

翠 23:22:36

哦哦 

赵刚华 23:23:23

我目的就是为了取第一次点击的相对页面的坐标

赵刚华 23:23:37

再取第二次第三次..

翠 23:23:38

这个位置是00吗

翠 23:23:57

哦哦 

赵刚华 23:23:58

每次用减前一次就是移动的量

翠 23:24:13

明白

玉子 23:24:14

然后每移动

赵刚华 23:24:17

00是页面左上角

玉子 23:24:19

哦哦

这个位置是00吗
翠 23:23:57
哦哦
赵刚华 23:23:58
每次用减前一次就是移动的量
翠 23:24:13
明白
玉子 23:24:14
然后每移动
赵刚华 23:24:17
00是页面左上角
玉子 23:24:19
哦哦

赵刚华 23:30:02

先理解

翠 23:30:08

理解了 

赵刚华 23:30:19

我们再开始

翠 23:30:31

如果是测量

赵刚华 23:30:02
先理解
翠 23:30:08
理解了
赵刚华 23:30:19
我们再开始
翠 23:30:31
如果是测量

时间: 2024-10-04 21:40:55

师父教的拖动插件的相关文章

拖动插件的一些常见问题

最近项目需要,我要实现一个拖动的功能.大概的意思是:你邮箱里面的邮件列表,你可以通过鼠标mousedown后,通过鼠标移动mousemove,把特定的邮件拖动到垃圾箱啊或者草稿箱啊,如果拖动到的地方不是像垃圾箱或草稿箱的元素,就不做处理. 这个功能在邮箱项目上是很普遍的,我稍微看了下我们公司的标准邮箱的实现方法,其中有一个疑问是:为什么不用节流的方式来控制mousemove的操作.大家都知道像mousemove和scroll这种事件,你拖动一下,就可能触发很多次,导致回调方法也执行很多次,性能不

移动端无缝滚动兼拖动插件

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title>图片点击滑动<

JQuery 左右拖动插件

js文件:http://hokaccha.github.io/js-flipsnap/js/flipsnap.js 官网: http://hokaccha.github.io/js-flipsnap/

dragsort拖动插件的使用

<!DOCTYPE html><html><head> <title>DragSort Example</title> <meta charset="utf-8" /> <style type="text/css"> body { font-family:Arial; font-size:12pt; padding:20px; width:820px; margin:20px aut

jQuery列表拖动排列-jquery list dragsort插件参数和使用方法

在编写网页的时候,有时可能需要对ul的li进行排序,今天就给大家推荐使用jquery插件jquery list dragsort实现列表拖动排序效果. 效果如图: jquery list dragsort列表拖动插件使用方法 $("ul").dragsort({     dragSelector: "li",     dragEnd: function() { },     dragBetween: false,     placeHolderTemplate: &

【转】jQuery列表拖动排列-jquery list dragsort插件参数和使用方法

转自:http://www.itokit.com/2014/0820/75058.html 我们在编辑页面元素排序的时候,我推荐使用jquery插件:dragsort. dragsort官网地址:http://dragsort.codeplex.com/ 在编写网页的时候,有时可能需要对ul的li进行排序,今天就给大家推荐使用jquery插件jquery list dragsort实现列表拖动排序效果. 效果如图: jquery list dragsort列表拖动插件使用方法 $("ul&quo

可以拖动的插件

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 <link rel="stylesheet" href="左边选项卡/css/bootstrap.min.css"/> 7 8 <style> 9 *{

canvas实现拖动页面时显示窗口视频

简介 当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽. 今晚心血来潮,起了动手试试的念头.我的想法很简单,用canvas来获取视频每一帧的数据,并用动画函数 requestAnimationFrame函数(这里没有考虑兼容性)来显示每一帧的视频数据.另外,对canvas绑定拖动的 功能,这样就基本实现了简易的窗口视频. 本章内容的重点就是requestAnimationFrame函数和ca

chrome下教你如何查看元素绑定的事件

说在开头 在前端调试的时候,我们经常遇到这一个问题,要想审查特定元素上绑定的事件; 通常来讲,在chrome开发者工具有一栏Event listeners可以查看特定元素上绑定的事件 如下图所示: 这里我做了一个测试,不管是使用Dom0级规范中 listeners均能显示所绑定事件类型,并且点击对应js文件后,能正确指向对应的事件处理函数. 更加强大的是,如果我们给其父元素绑定事件,由于事件冒泡的关系,查看子元素的Event listeners中也能看到该事件: 当然查看父元素的Event li