data: { hide_good_box: true , }, onLoad: function (options) { this .busPos = {}; this .busPos[ 'x' ] = app.globalData.ww/2; this .busPos[ 'y' ] = app.globalData.hh - 10; console.log( '购物车坐标' , this .busPos) }, touchOnGoods: function (e) { // 如果good_box正在运动 if (! this .data.hide_good_box) return ; this .finger = {}; var topPoint = {}; this .finger[ 'x' ] = e.touches[ "0" ].clientX; this .finger[ 'y' ] = e.touches[ "0" ].clientY; if ( this .finger[ 'y' ] < this .busPos[ 'y' ]) { topPoint[ 'y' ] = this .finger[ 'y' ] - 150; } else { topPoint[ 'y' ] = this .busPos[ 'y' ] - 150; } topPoint[ 'x' ] = Math.abs( this .finger[ 'x' ] - this .busPos[ 'x' ]) / 2; if ( this .finger[ 'x' ] > this .busPos[ 'x' ]) { topPoint[ 'x' ] = ( this .finger[ 'x' ] - this .busPos[ 'x' ]) / 2 + this .busPos[ 'x' ]; } else { topPoint[ 'x' ] = ( this .busPos[ 'x' ] - this .finger[ 'x' ]) / 2 + this .finger[ 'x' ]; } this .linePos = app.bezier([ this .finger, topPoint, this .busPos], 20); this .startAnimation(); }, startAnimation: function () { var index = 0, that = this , bezier_points = that.linePos[ 'bezier_points' ], len = bezier_points.length - 1; this .setData({ hide_good_box: false , bus_x: that.finger[ 'x' ], bus_y: that.finger[ 'y' ] }) this .timer = setInterval( function () { index++; that.setData({ bus_x: bezier_points[index][ 'x' ], bus_y: bezier_points[index][ 'y' ] }) if (index >= len) { clearInterval(that.timer); that.setData({ hide_good_box: true , }) } }, 15); }, |