博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“完美”解决微信小程序购物车抛物动画,在连续点击时出现计算错误问题,定时器停不下来。...
阅读量:5788 次
发布时间:2019-06-18

本文共 1732 字,大约阅读时间需要 5 分钟。

最近做,微信点餐小程序,遇到添加商品时出现抛物动画,参考借鉴了这位大神的方法

但出现了一个问题,连续点击加入购物车时,抛物动画报错。如图:

我的解决方法是:

//购物车抛物动画 (时间间隔)(解决点击过于频繁时,抛物动画报错问题)     var nowTime = new Date().getTime();      var clickTime = e.currentTarget.dataset["ctime"];            if (clickTime != 'undefined' && (nowTime - clickTime < 1500)) {                wx.showToast({          title: '操作过于频繁',          icon: 'loading',          duration: 1000        })      } else {        _that.setData({          ctime: nowTime        })               _that.touchOnGoods(e);              }

 以上方法是临时上线想到的,但并不是最好的解决方法,还影响用户体验。假如用户就是要连续点击,那么能不能连续创建多个抛物小球呢?答案是可以的,其实连续创建小球,上面那位大神【链接】的代码中已经写好了。

问题分析:看上一次浏览器抛出的错误,如下

这个错误什么意思呢?根据查找,最终定位 【startAnimation】这个方法中的 【setInterval】方法,“x” of undefined  ,x未定义,指的是 bezier_points[index]['x'] 在取值时,因为 index 的值超出了范围导致在获取x的值时显示未定义。

经过改造(代码如下)哈哈,只用修改这里就好了,之前的阻断连续点击的代码可以去掉了:

1     // this.timer = setInterval(function () {
2 // index--; 3 // that.setData({
4 // bus_x: bezier_points[index]['x'], 5 // bus_y: bezier_points[index]['y'] 6 // }) 7 // if (index < 1) {
8 // clearInterval(that.timer); 9 // that.setData({
10 // hide_good_box: true11 // })12 // }13 // }, 25);14 15 this.timer = setInterval(bus_set,25);16 function bus_set(){ 17 for (let i = index-1; i > -1; i--) { 18 that.setData({19 bus_x: bezier_points[i]['x'],20 bus_y: bezier_points[i]['y']21 })22 if (i < 1) {23 clearInterval(that.timer);24 that.setData({25 hide_good_box: true26 })27 }28 }29 }

如果有更好的解决办法请留言,大家一起学习,谢谢!!

转载于:https://www.cnblogs.com/tongkaiqiang/p/9083571.html

你可能感兴趣的文章
zookeeper配置与使用
查看>>
0005-Windows Kerberos客户端配置并访问CDH
查看>>
联姻金融科技独角兽 建信养老金开启智能化转型升级
查看>>
IT兄弟连 JavaWeb教程 Servlet线程安全问题
查看>>
JVM的参数详解
查看>>
REMOTE HOST IDENTIFICATION HAS CHANGED!
查看>>
Ruby之父讲什么是闭包
查看>>
OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
查看>>
突然想 写个 接口定义 【来源于华为和海康 设备接口同步】
查看>>
遇见格灵深瞳那一刻,我一见倾心
查看>>
Android学习笔记(四):android画图之paint之setXfermode
查看>>
【Android Studio快捷键】之导入相应包声明(import packages)
查看>>
复制JS
查看>>
UVa 208-Firetruck
查看>>
Session何时创建实例
查看>>
直接插入排序
查看>>
Cobbler安装指南
查看>>
HDOJ 1720 A+B Coming
查看>>
疑难杂症交流方式
查看>>
第二十一天 认识一维数组part3
查看>>