在Leaflet中执行动画skill-value map: [{1,50}, {2,60}, {4,50}]
时,我想使用自定义三次贝塞尔曲线。我在Leaflet's pan options中发现了setView()
,但这只改变了三次贝塞尔曲线的第三个参数:
平移动画缓和的曲率因子(三次贝塞尔曲线的第三个参数)。 1.0表示线性动画,此数字越小,曲线越弯曲。
我尝试使用easeLinearity
选项,但感觉不正确。
我正在寻找一种使用“缓入”或“缓入”类型缓动,甚至是完全自定义的三次贝塞尔曲线的方法。有人知道实现此目标的方法吗?
答案 0 :(得分:0)
缓动平移动画存在于this very particular piece of code中:
_easeOut: function (t) {
return 1 - Math.pow(1 - t, this._easeOutPower);
}
要切换到自定义缓动功能,您应该:
L.PosAnimation
的子类,并覆盖_step()
或_easeOut()
私有方法。L.Map
spawn an instance of L.PosAnimation
的所有实例。通过将子类的实例注入到_panAnim
实例的(私有)L.Map
属性中,最好在所有平移动画发生之前 插入。它很脏,有点黑,但有可能。