个人随笔
目录
你画我猜游戏踩到的坑记录20200122
2020-01-22 23:23:42

当我噼里啪啦把代码写完在电脑端调试好后,上线约测试下,喵了个咪,不管怎么,手指移动线条就是对不上,我的手指监听事件如下:

  1. $('#bgd').on('touchstart',function(e) {
  2. //防止非画画的用户点击
  3. if(!start){
  4. return;
  5. }
  6. var offset = $(this).offset(); //DIV在页面的位置
  7. var x = offset.left; //获得鼠标指针离DIV元素左边界的距离
  8. var y = offset.top; //获得鼠标指针离DIV元素上边界的距离
  9. $('#bgd').on('touchmove',function(ev) {
  10. ing=1;
  11. //这里需要对快照数量进行重置
  12. snapshot_num=snapshot.length;
  13. var _touch = ev.originalEvent.targetTouches[0];
  14. var _x= _touch.pageX-x;
  15. var _y= _touch.pageY-y;
  16. stroke(_x,_y);
  17. });
  18. });

发现移动端完全不行啊,什么妖魔鬼怪的画法,明明按到右边,线条却在左边,后面发现:触摸时浏览器有个默认的事件,这个事件会阻断你的所有操作。所以在操作之前要先把默认事件除掉evt.preventDefault();

真他喵让人崩溃!搞了好久,加上后就完美了!

  1. //手指移动
  2. $('#bgd').on('touchstart',function(e) {
  3. e.preventDefault();
  4. //防止非画画的用户点击
  5. if(!start){
  6. return;
  7. }
  8. var offset = $(this).offset(); //DIV在页面的位置
  9. var x = offset.left; //获得鼠标指针离DIV元素左边界的距离
  10. var y = offset.top; //获得鼠标指针离DIV元素上边界的距离
  11. $('#bgd').on('touchmove',function(ev) {
  12. ev.preventDefault();
  13. ing=1;
  14. //这里需要对快照数量进行重置
  15. snapshot_num=snapshot.length;
  16. var _touch = ev.originalEvent.targetTouches[0];
  17. var _x= _touch.pageX-x;
  18. var _y= _touch.pageY-y;
  19. stroke(_x,_y);
  20. });
  21. });
  22. //手指移开
  23. $('#bgd').on('touchend',function(e) {
  24. if(!start){
  25. return;
  26. }
  27. $("#bgd").unbind("touchmove");
  28. if(ing==1){
  29. saveImg();
  30. }
  31. ing=0;
  32. });

欢迎大家访问测试:https://chat.suibibk.com/guess

 277

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2