Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shiny 是否有像conditionalPanel这样的闪亮函数公开输入?_Shiny_Shinyjs - Fatal编程技术网

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)
调整不透明度