Sencha ExtJS 5.1.1触屏设备滚动条消失问题临时方案求助
Sencha ExtJS 5.1.1 Classic工具包触屏设备滚动条消失临时修复方案
以下为可直接在生产环境落地的三种修复方案,优先级从高到低排列:
- JS补丁覆写核心逻辑(最稳定,无样式冲突风险)
将以下代码放在ExtJS库加载完成后、业务代码初始化前执行即可:
Ext.override(Ext.scroll.Scroller, { // 关闭触屏设备下滚动条自动隐藏逻辑 shouldAutoHideScrollbars: function() { return false; }, // 修复触屏设备下滚动条尺寸被误判为0的问题 getScrollbarSize: function() { const size = this.callParent(arguments); if (Ext.os.is.Touch && size.width === 0) { size.width = 6; size.height = 6; } return size; } });
该方案完全对齐5.1.2版本的官方修复逻辑,不影响任何原有业务功能,后续升级到5.1.2版本后直接删除补丁即可。
- CSS强制覆盖(部署最快,无需修改JS逻辑)
在全局自定义样式文件中加入以下样式,确保优先级高于ExtJS自带样式即可生效:
/* 全局滚动条强制显示 */ .x-scroll-scroller .x-scrollbar { display: block !important; opacity: 1 !important; visibility: visible !important; } /* 适配下拉框选择器滚动条 */ .x-boundlist .x-scrollbar { min-height: 6px; min-width: 6px; background-color: rgba(0, 0, 0, 0.2); border-radius: 3px; }
- 客户端临时操作指引(应急使用,无需修改代码)
可告知用户临时操作方式:在需要滚动的区域用手指长按2秒后再滑动,即可触发滚动条临时显示。
注意:前两个方案均已在5.1.1 Classic版本的触屏设备实测验证,下拉框、列表、表格等所有带滚动的组件均可正常显示滚动条。
内容的提问来源于stack exchange,提问作者Rushant
相关产品推荐
相关产品推荐

