如何延长闪亮应用中活动代码突出显示的时间?

时间:2019-04-04 16:41:12

标签: r shiny

我正在一个Shiny项目中,其中Shiny应用程序包含大量代码。我想使用以下方式交互式地调试应用程序的代码:

runApp("ShinyApp.R", launch.browser = TRUE, display.mode = "showcase")

display.mode = "showcase"参数在我的浏览器中的应用程序旁边显示活动代码,并突出显示用户与应用程序进行交互的区域。下面是一个很好的示例:https://shiny.rstudio.com/articles/action-buttons.html

此答案中还提到了如何使用它的另一个示例:How do I highlight active code in a shiny app?

我发现具有挑战性的是,因为我的应用程序脚本包含超过800行代码,所以当它出现时,我看不到突出显示(它消失得太快)。如此处所述:https://shiny.rstudio.com/articles/display-modes.html,突出显示会在几分钟后消失。

我的问题是:

是否可以增加时间直到突出显示的区域消失?

有没有一种方法可以迫使侧栏滚动到突出显示的区域?

谢谢您的任何建议或答案!

1 个答案:

答案 0 :(得分:2)

是和是,但是您必须编辑源代码及其Javascript。需要修改的代码位于inst/www/shared/shiny-showcase.js中。如果您要在my fork of Shiny上进行修改,我已经在其中进行了更改。

对于您有关精彩片段持续时间的第一个问题,这由第112行的JQuery highlight effect处理:

// 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是当前指向活动代码区域以突出显示的变量名。

这是进行中的调整中的hosted working demo