Shiny 是否有像conditionalPanel这样的闪亮函数公开输入?
Shiny 是否有像conditionalPanel这样的闪亮函数公开输入?,shiny,shinyjs,Shiny,Shinyjs,conditionalPanel是一种方便的方法,用于包装返回布尔值的javascript表达式,以显示或隐藏HTML对象。是否有更通用的方法公开输入?如果没有,为什么没有 假设您有一个滑块和一个要手动淡出的绘图。如果有一个函数,比如说,jsExpr,并编写如下内容,会很方便: sliderInput("opacity", "Opacity", min=0, max=0.5, value=0.2, step=.1), div(style=paste0('opacity:',jsExpr("inp
conditionalPanel
是一种方便的方法,用于包装返回布尔值的javascript表达式,以显示或隐藏HTML对象。是否有更通用的方法公开输入
?如果没有,为什么没有
假设您有一个滑块和一个要手动淡出的绘图。如果有一个函数,比如说,jsExpr
,并编写如下内容,会很方便:
sliderInput("opacity", "Opacity", min=0, max=0.5, value=0.2, step=.1),
div(style=paste0('opacity:',jsExpr("input.opacity*2")), plotOutput("myPlot"))
这里,我在表达式中添加了一个*2
,只是为了强调我想使用输入中的任意计算值。如果conditionalPanel
可以基于布尔javascript表达式显示/隐藏,为什么不更一般地如上所述
使用shinyjs的最佳替代解决方案似乎要复杂得多。例如:
library(shiny)
library(shinyjs)
adjustOpacity <- "shinyjs.adjustOpacity = function(params) {
$('.myplot').css('opacity',params)
}"
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text=adjustOpacity),
sliderInput("opacity", "Opacity", min=0, max=0.5, value=0.2, step=.1),
div(class="myplot", plotOutput("myPlot"))
)
server <- function(input, output) {
output$myPlot <- renderPlot({ plot(faithful, pch=15) })
observeEvent(input$opacity, {
js$adjustOpacity(input$opacity*2)
})
}
shinyApp(ui = ui, server = server)
库(闪亮)
图书馆(shinyjs)
调整不透明度