//?this.x,?this.startX,?duration,?this.maxScrollX|Y,?this.options.bounce???this.wrapperWidth|Height?:?0,?this.options????
export?function?momentum(current,?start,?time,?lowerMargin,?wrapperSize,?options)?{????
let?distance?=?current?-?start;????
let?speed?=?Math.abs(distance)?/?time;????
//??deceleration?=?0.001,?itemHeight,?swipeBounceTime?=?1200,?bounceTime?=?700????
let?{deceleration,?itemHeight,?swipeBounceTime,?bounceTime}?=?options;????
//?swipeTime?=?2500????
let?duration?=?options.swipeTime;????
let?rate?=?options.wheel???4?:?15;????
//?????
//?(distance?<?0???-1?:?1)?判斷往上滾動,還是往下滾動????
let?destination?=?current?+?speed?/?deceleration?*?(distance?<?0???-1?:?1);????
if?(options.wheel?&&?itemHeight)?{????
destination?=?Math.round(destination?/?itemHeight)?*?itemHeight;????
}????
//?destination?<?lowerMargin判斷往(下|右)方向,?destination?>?0?相反????
if?(destination?<?lowerMargin)?{????
//?????
destination?=?wrapperSize???lowerMargin?-?(wrapperSize?/?rate?*?speed)?:?lowerMargin;????
duration?=?swipeBounceTime?-?bounceTime;????
}?else?if?(destination?>?0)?{????
//????
destination?=?wrapperSize???wrapperSize?/?rate?*?speed?:?0;????
duration?=?swipeBounceTime?-?bounceTime;????
}????
return?{????
destination:?Math.round(destination),????
duration????
};????
};
better-scroll 插件源碼中 momentum 函數(shù) ,動量公式推導的?如何學習呢
Arey_jy
2017-08-22 11:56:31