关于curPoint 值的问题

关于curPoint 值的问题

curPoint.x += touch.pageX - startPoint.x;


 // curPoint.x = touch.pageX ;

 // curPoint.y = touch.pageY ;

请问老师,这两种写法关键的区别在哪里,刚开始我认为是一样的,但我尝试运行过,用后面的这种在第二次拖动时,目标元素会消失,我不清楚其中问题出在哪里?

http://img1.sycdn.imooc.com//climg/5dde30650966b44204150429.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2019-11-27 18:57:18

同学你好,可以这样理解:

元素一开始在页面右下角

http://img1.sycdn.imooc.com//climg/5dde55110977781204460726.jpg

但是curPoint对象坐标值设置为(0,0),而拖拽一点点停止时的坐标为:

http://img1.sycdn.imooc.com//climg/5dde556009c192f605850170.jpg

http://img1.sycdn.imooc.com//climg/5dde559409be85f909280499.jpg

所以拖动停止时,不能将页面上的坐标直接赋值给curPoint对象,需要赋值移动差值的坐标。否则拖动过程中使用curPoint对象计算movePoint对象的坐标就不对了。自己再理解下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

好帮手慕星星 2019-11-27 17:14:04

同学你好,这两段的区别就是一个是在原来基础上更改坐标,一个是重新赋值坐标。

1、第一段代码的意思是:

http://img1.sycdn.imooc.com//climg/5dde3ce4097da45b06520149.jpg

curPoint当前坐标+移动的距离再赋值给curPoint当前坐标。

2、第二段代码直接将当前在页面中停止的坐标赋值了,curPoint对象开始坐标值设置为(0,0),并不是在页面上的坐标,所以不能直接将页面上的坐标赋值给curPoint对象。

可以输出curPoint对象和touch.pageX,touch.pageY的值看看。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕勒3413819 #1
    怎么理解“不是在页面上的坐标,所以不能直接将页面上的坐标赋值curPoint对象”?拿赋值给它不就在页面上了吗?
    2019-11-27 18:05:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师