class TouchMoveItem { _staticHeight = 0 _clientY = 0 newHeight = 0 _temp = 0 _diff = 0 _step = 80 max = 630 min = 480 setBlockHeight(_staticHeight) { this._staticHeight = _staticHeight this.newHeight = _staticHeight } setMaxHeight(val) { this.max = val } setMinHeight(val) { this.min = val } // touch start initTouchY(clientY) { this._clientY = clientY } // touch move计算差值 diff(clientY) { return clientY - this._clientY } // get new block hight updateHeight(clientY) { let diff = this.diff(clientY) this._diff = diff if (this.newHeight - diff >= this.min && this.newHeight - diff <= this.max) { this._temp = this.newHeight - diff } else { if (this.newHeight - diff < this.min) { this._temp = this.min } if (this.newHeight - diff > this.max) { this._temp = this.max } } return this._temp } // touch end touchEnd() { if (Math.abs(this._diff) > this._step) { if (this._diff > 0) { this.newHeight = this.min } else { this.newHeight = this.max } } else { this.newHeight = this.newHeight } } getStaticHeight() { return this._staticHeight } } export default TouchMoveItem