当minValue!=0时,整个绘制的轴会向右(横向)或向下(纵向)平移,当minValue特别大时尤其明显。在开发MultiSlider时发现了这种情况,发现其具有明显的规律性,因此较易解决。解决后,想去ExtJS官方论坛提交该bug,发现已经有人先行发现该问题,但其解决办法并不能涵盖所有情况,如onKeyDown函数等。 详情请见:
ExtJS论坛的slider bug讨论。这里给出
我(phdbrianlee)的 解决方法:
Ext.override(Ext.Slider, { translateValue : function(v){ return ((v-this.minValue) * this.getRatio())-this.halfThumb; }, setValue : function(v, animate){ v = v + this.minValue; v = this.normalizeValue(v); if(v !== this.value && this.fireEvent('beforechange', this, v, this.value) !== false){ this.value = v; this.moveThumb(this.translateValue(v), animate !== false); this.fireEvent('change', this, v); } } });