Mr_*_*een 10 javascript extjs extjs4 extjs-mvc extjs4.1
在Extjs 4.1.1a中,如何保持tip text滑块始终可见?
目前,tip text只要用户拖动滑块的条,就可以看到它.
我搜索了文档,但找不到任何相关的概念.
如果没有记录或不可能,请解释我如何tip text手动创建.该tip text应沿着滑块的条移动,它不应该克服或隐藏的任何其它相邻部件.
这是我生成一个简单滑块的代码:
xtype:'slider',
cls: 'sliderStyle',
width: "80%",
id: 'slider',
value: 6,
minValue: 1,
maxValue: 12,
useTips: true,
tipText: function(thumb){
var months = ['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var value = Ext.String.format(months[thumb.value]);
return value;
},
Run Code Online (Sandbox Code Playgroud)
问题2:至少可以显示tip text悬浮在滑块上的时间吗?
PS:我在这里也问了同样的问题.
编辑1: 我也用两个相邻的按钮(<和>)移动滑块的搜索条.所以,必须注意的是,如果我用相邻的按钮移动搜索条,那么它tip text也应该移动.
编辑2:当在滑块或相邻按钮上悬停时,提示文本应该是可见的.
通过覆盖一些事件处理程序,我设法保持提示可见Ext.slider.Tip:
Ext.define('AlwaysVisibleTip', {
extend: 'Ext.slider.Tip',
init: function(slider) {
var me = this;
me.callParent(arguments);
slider.removeListener('dragend', me.hide);
slider.on({
scope: me,
change: me.onSlide,
afterrender: function() {
setTimeout(function() {
me.onSlide(slider, null, slider.thumbs[0]);
}, 100);
}
});
}
});
Ext.create('Ext.slider.Single', {
animate: false,
plugins: [Ext.create('AlwaysVisibleTip')],
// ...
});
Run Code Online (Sandbox Code Playgroud)
看看演示.
我的方法的缺点:
onSlideanimate设置为时才能正常工作falsesetTimeout 用于调整尖端的初始位置修复这个缺点不仅需要攻击Ext.slider.Tip类,还需要Ext.slider.Multy类和Ext.slider.Thumb类.
将changecomplete事件替换change为changecomplete在slider.setValue()调用时未触发的事件.
添加了相邻按钮的滑块演示.
tipText如果使用自定义提示插件,则不再应用config.你必须使用插件的getText配置:
Ext.create('Ext.slider.Single', {
animate: false,
plugins: [Ext.create('AlwaysVisibleTip',{
getText: function(thumb) {
var months = ['','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
return Ext.String.format(months[thumb.value]);
}
})],
// ...
});
Run Code Online (Sandbox Code Playgroud)
更新了演示.
| 归档时间: |
|
| 查看次数: |
4739 次 |
| 最近记录: |