好的,所以我想要一个看起来像这样的滑块。
只是无法弄清楚我们至少可以在哪里使用这些分隔符分隔符?因此,如果您看到有 7 个分隔符,并且我们在前 4 个和最后一个分隔符上有大标签。
您将如何处理这项任务?
好的,所以我想要一个看起来像这样的滑块。
只是无法弄清楚我们至少可以在哪里使用这些分隔符分隔符?因此,如果您看到有 7 个分隔符,并且我们在前 4 个和最后一个分隔符上有大标签。
您将如何处理这项任务?
这是一个相当古老的问题,但我今天也面临着同样的需求。基于 GenieWanted 的回答,我得出了这个结论:
...
{
xtype: 'sliderfield',
maxValue: 5,
label: 'Some data',
html: '<table width="100%" align="left"><tr><td width="25%">Min</td><td width="50%" align="center">Med</td><td width="25%" align="right">Max</td></tr></table>'
}
...
这对我来说非常有效,并且避免了寻找
所需的正确数量。此外,我怀疑结果会因使用
.
无法在滑块字段内添加标签。但是,您确实可以添加 HTML 来获得所需的输出。在配置面板上,转到 HTML 属性,然后添加如下内容:
<div style="padding-left:1em">| | |<div>Low Average High </div></div>
我得到的输出:
您只需要调整 HTML 中文本的对齐方式。这样就行了!
祝你好运!
您可以像这样创建自定义滑块
Ext.ns('Ext.ux');
Ext.ux.CustomSlider = Ext.extend(Object, {
valueTextClass: 'x-slider-value-text',
showSliderBothEndValue: true,
sliderEndValueStyle: 'color: black',
constructor: function(config){
Ext.apply(this, config);
Ext.ux.CustomSlider.superclass.constructor.apply(this, arguments);
},
init: function(parent) {
var me = this;
parent.on({
painted: {
fn: function(component) {
if (me.showSliderBothEndValue) me.showSliderEndValue(this);
if (!this.valueTextEl) {
this.valueTextEl = component.element.createChild({
cls: me.valueTextClass
});
}
}
}
});
},
showSliderEndValue: function(slider) {
var sliderPosX = slider.getComponent().getThumb().element.getX();
var thumbHeight = slider.getComponent().getThumb().element.getHeight();
var sliderLength = slider.getComponent().element.getWidth();
var minValueEl = slider.getComponent().element.createChild();
minValueEl.setHtml(slider.getComponent().getMinValue());
minValueEl.applyStyles('overflow:hidden;position:absolute');
minValueEl.applyStyles(this.sliderEndValueStyle);
minValueEl.setLeft(14);
minValueEl.setTop(thumbHeight -7);
var maxValueEl = slider.getComponent().element.createChild();
maxValueEl.setHtml(slider.getComponent().getMaxValue());
maxValueEl.applyStyles('overflow:hidden;position:absolute');
maxValueEl.applyStyles(this.sliderEndValueStyle);
maxValueEl.setLeft(sliderLength-45);
maxValueEl.setTop(thumbHeight - 7);
}
});
并像这样创建滑块
var slider = {
xtype: 'sliderfield',
flex : 6,
label: "Percentage",
name: "Percentage",
value : 50,
minValue : 0,
maxValue : 100,
labelWrap : true,
labelAlign : 'left',
increment : 10,
plugins: [new Ext.ux.CustomSlider({
showSliderBothEndValue: true
})],
listeners: {
painted: function (slider) {
var sliderPanelItems = this.parent.getInnerItems();
sliderPanelItems[1].setValue(this.getValue());
},
change: function (me,slider, thumb, newVal, oldVal, opts) {
var sliderPanelItems = this.parent.getInnerItems();
sliderPanelItems[1].setValue(newVal);
}
}
};
结果会是这样
我使用这个链接做了这个