我正在做一个闪亮的项目,其中闪亮的应用程序包含大量代码。我想使用以下方法以交互方式调试应用程序的代码:
runApp("ShinyApp.R", launch.browser = TRUE, display.mode = "showcase")
display.mode = "showcase"
参数在我的浏览器中显示应用程序旁边的活动代码,并突出显示用户与应用程序交互的区域。以下是其工作原理的一个很好的例子:https://shiny.rstudio.com/articles/action-buttons.html
这个答案中提到了如何使用它的另一个例子:如何在闪亮的应用程序中突出显示活动代码?
我发现具有挑战性的是,因为我的应用程序脚本包含 800 多行代码,所以我无法看到突出显示(它消失得太快)。如此处所述:https://shiny.rstudio.com/articles/display-modes.html,突出显示会在片刻后消失。
我的问题是:
是否可以增加突出显示区域消失的时间?
有没有办法强制侧边栏滚动到突出显示的区域?
感谢您的任何建议或答案!
是的,是的,但你必须编辑源代码,它是Javascript。需要修改的代码存在于inst/www/shared/shiny-showcase.js
.如果你想从那里开始,我已经在我的 Shiny 分支上进行了代码更改。
对于您关于高亮显示持续时间的第一个问题,这是由第 112 行的JQuery
高光效果处理的:
// End any previous highlight before starting this one
jQuery(el)
.stop(true, true)
.effect("highlight", null, 5000);
原版是 1600 秒,即 1.6 秒,所以我在这里将其提高到 5 秒。您可以将其更改为您认为最好的任何内容。
您关于滚动到活动/突出显示代码的第二个问题不包含在原始脚本中,但执行功能已烘焙到 Web 元素中并称为element.scrollIntoView()
。我只是在突出显示块之后立即插入了这段代码:
// Scroll to highlighted element
el.scrollIntoView({behavior: 'smooth'});
el
是当前指向要突出显示的活动代码区域的变量名称。
这是调整操作的托管工作演示。