当Shiny应用程序正在加载时更改光标

3

我正在开发一个亮丽的应用程序,但是在尝试更改光标样式时遇到了问题,特别是当应用程序处于忙碌状态时。请看下面的代码,这是我的尝试。

conditionalPanel(condition="!$('html').hasClass('shiny-busy')",
                 HTML("<style>#dashboard_complete{cursor:default;</style>")
                ),     
conditionalPanel(condition="$('html').hasClass('shiny-busy')",
                 HTML("<style>#dashboard_complete{cursor:wait;}</style>")
                )

“dashboard_complete”是我在应用程序中使用的仪表板布局的ID。

从技术上讲,我想要表达的是,当Shiny没有忙碌时,它会将光标样式更改为“默认”,而当它忙碌时则更改为“等待”。由于某种原因,它一直在“等待”状态。有人知道为什么不起作用吗?

非常感谢,我很感激您的意见。


https://dev59.com/n18e5IYBdhLWcg3wLX8- - Enrique Pérez Herrero
2个回答

0

看起来在第一个条件面板调用中,你的 css 出了问题。你漏掉了一个闭合大括号。 正确的语法应该像这样:

conditionalPanel(condition="!$('html').hasClass('shiny-busy')",
                 HTML("<style>#dashboard_complete{cursor:default;}</style>")
), 
# ...

不确定是否完全解决了问题,但让我们看看吧。


0

这种方式对我来说很有效。

tags$style(type="text/css", "
                #loadmessage {
                   cursor: wait; 
                   width: 100%;
                   height: 100%;
                   opacity: 0;
                   z-index: 105;
                }  



conditionalPanel(condition="$('html').hasClass('shiny-busy')", tags$div("waiting message...",id="loadmessage"), )

敬礼


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接