如何切换extjs主题?

如何切换extjs主题?,extjs,Extjs,我注意到extjs带有3到4个默认主题/皮肤。如何在主题之间进行选择或切换 我想改变蓝色以选择灰色主题或其他东西 感谢功能可用于在不同主题之间切换,论坛帖子给出了一个示例 不久前,我也在我的应用程序中实现了这一点,但我最终发现强制浏览器刷新是必要的,而不是动态交换CSS,因为仍然存在一些奇怪的大小/定位问题。这主要是在可访问性主题之间切换时发生的。虽然Ext.util.CSS.swapStyleSheet可以工作,但它没有什么缺点: 1。使用新的CSS主题呈现页面需要更多时间。 2.在主题之间切

我注意到extjs带有3到4个默认主题/皮肤。如何在主题之间进行选择或切换

我想改变蓝色以选择灰色主题或其他东西

感谢

功能可用于在不同主题之间切换,论坛帖子给出了一个示例


不久前,我也在我的应用程序中实现了这一点,但我最终发现强制浏览器刷新是必要的,而不是动态交换CSS,因为仍然存在一些奇怪的大小/定位问题。这主要是在可访问性主题之间切换时发生的。

虽然Ext.util.CSS.swapStyleSheet可以工作,但它没有什么缺点:

1。使用新的CSS主题呈现页面需要更多时间。
2.在主题之间切换时,您的页面将有一段时间没有任何css。这会使页面看起来很糟糕(破损和平淡)。
3.屏幕上将出现不必要的滚动条。

我使用JavaScript克服了这些问题:

这里,

  • 在HTML文件中包含所有CSS文件

    <link rel="stylesheet" id="theme1" type="text/css" href="../Theme1.css" />
    <link rel="stylesheet" id="theme2" type="text/css" href="../Theme2.css" />
    
    现在页面将加载“theme2”

  • 如果你想切换主题。做与上述相反的事

    document.getElementById('theme1').disabled = false;
    document.getElementById('theme2').disabled = true;
    
  • 这样,切换将非常快。因为我们最初加载了所有css文件。它不会每次都向服务器请求新主题


    这对我来说效果很好。

    两方面。。我本想打电话给现有的cssI,结果却用了这个Hey Brian。我也面临同样的问题。当我动态改变主题时,我在屏幕上看到一些滚动条。你是如何克服这个问题的?关于第2点的问题。第三点:我是否将这些语句写入app.js文件或其他文件?@kiltek如果使用按钮在主题之间切换,则可以在按钮处理程序中写入这些语句。
    document.getElementById('theme1').disabled = false;
    document.getElementById('theme2').disabled = true;