对一个元素使用mousedown、mouseup、mousemove事件实现两种效果,怎么去做区分???在线急等!!!

WQM_DC 2016-12-05 10:09:49
对同一个div绑定了mousedown、mousemove和mouseup事件,想实现两个效果,分别是让这个div本身可以进行移动,或者在点击之后,获取这个div的中心点,使用svg中的line标签,再根据mousemove时鼠标的值,动态的去绘制一条线出来。可是同样的事件,做着同样的事情,怎么去区分当点击下,是想移动这个元素还是想要进行画线???求大大解惑~~~
...全文
695 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WQM_DC 2016-12-05
  • 打赏
  • 举报
回复
引用 3 楼 qq_29594393 的回复:
[quote=引用 2 楼 WQM_DC 的回复:] [quote=引用 1 楼 u012239465 的回复:] 可以自己设置状态码来确定当前是否执行对应的事件
两个事件都是写的mousemove、mousedown的事件去进行操作实现的。也就是说如果将两个功能合在一起的时候,移动元素的同时可能会产生线,而画线的时候会使元素进行移动。同一个元素,相同的事件,去写两种效果,怎么去判断这个状态码呢?如果有状态码的话,有一个功能是不能实现的吧???[/quote] 首先你要想好,这两个事件的处理方式不一样,不能相同 点击之后获取鼠标当前的偏移量,点击mousedown触发 开始计时 ,1秒内(举例),鼠标的偏移量没有大的变化(几个px以内)说明是拖动 点击后,在一秒内的偏移量发生较大的改变说面是划线 这样的话,两个事件就可以区分开来,这只是个人的思路。 最好是两个有不同的处理方式,例如在边框上加一个拖动事件,拖动的时候只能放在边框上去拖动,在里面就是划线。 或者加个按钮啥的,都可以[/quote] 嗯,加个按钮去做画线。。不然判断起来比加一个按钮要麻烦的多。
当作看不见 2016-12-05
  • 打赏
  • 举报
回复
引用 2 楼 WQM_DC 的回复:
[quote=引用 1 楼 u012239465 的回复:] 可以自己设置状态码来确定当前是否执行对应的事件
两个事件都是写的mousemove、mousedown的事件去进行操作实现的。也就是说如果将两个功能合在一起的时候,移动元素的同时可能会产生线,而画线的时候会使元素进行移动。同一个元素,相同的事件,去写两种效果,怎么去判断这个状态码呢?如果有状态码的话,有一个功能是不能实现的吧???[/quote] 首先你要想好,这两个事件的处理方式不一样,不能相同 点击之后获取鼠标当前的偏移量,点击mousedown触发 开始计时 ,1秒内(举例),鼠标的偏移量没有大的变化(几个px以内)说明是拖动 点击后,在一秒内的偏移量发生较大的改变说面是划线 这样的话,两个事件就可以区分开来,这只是个人的思路。 最好是两个有不同的处理方式,例如在边框上加一个拖动事件,拖动的时候只能放在边框上去拖动,在里面就是划线。 或者加个按钮啥的,都可以
WQM_DC 2016-12-05
  • 打赏
  • 举报
回复
引用 1 楼 u012239465 的回复:
可以自己设置状态码来确定当前是否执行对应的事件
两个事件都是写的mousemove、mousedown的事件去进行操作实现的。也就是说如果将两个功能合在一起的时候,移动元素的同时可能会产生线,而画线的时候会使元素进行移动。同一个元素,相同的事件,去写两种效果,怎么去判断这个状态码呢?如果有状态码的话,有一个功能是不能实现的吧???
木头海上漂 2016-12-05
  • 打赏
  • 举报
回复
可以自己设置状态码来确定当前是否执行对应的事件
WQM_DC 2016-12-05
  • 打赏
  • 举报
回复
引用 5 楼 lvbang_lzt 的回复:
也许你的这个场景需要用的你想要的这个功能,但我觉得这个设计是有问题的。 你是在用程序去处理自然人的思维,鼠标按住了,是拖动还是画线,这是操作者的选择,不应该用你的代码去做判断,再一步说,画线,我是想画直线还是曲线,难道你也要用代码去判断吗,程序给用户的是选择,你的这个需求,要区分是拖动还是画线,其实还是一个选择,只不过你的这个选择不是显示出来的。 可以拖动和画线进行分离。某个区域是为拖动,某个区域是为画线,2个选择交由用户去选,而不是交由代码去判断分析。
嗯,找了另一个模块是实现移动连线的问题了。。 。
lzh_me 2016-12-05
  • 打赏
  • 举报
回复
也许你的这个场景需要用的你想要的这个功能,但我觉得这个设计是有问题的。 你是在用程序去处理自然人的思维,鼠标按住了,是拖动还是画线,这是操作者的选择,不应该用你的代码去做判断,再一步说,画线,我是想画直线还是曲线,难道你也要用代码去判断吗,程序给用户的是选择,你的这个需求,要区分是拖动还是画线,其实还是一个选择,只不过你的这个选择不是显示出来的。 可以拖动和画线进行分离。某个区域是为拖动,某个区域是为画线,2个选择交由用户去选,而不是交由代码去判断分析。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧