【发布时间】:2021-07-11 15:56:33
【问题描述】:
对于我的应用,我需要总和为 100% 的比例滑块(多拇指滑块)。据我所知,rShiny 中没有类似的东西,但我在这里找到了我想要的东西:https://codepen.io/sim04ful/pen/QWjpLJm
这是在 truescript 和 React 中准备的。我下载了 zip,并使用 script.js、style.css 和 index.html 将其放入我闪亮的应用程序中。我对代码进行了一些小改动以进行自定义,然后在闪亮中使用 iframe 和 html 输出。
效果很好:https://tomaszwojtas.pl/shiny/slider_demo/(我的个人 vps)
代码如下:
library(shiny)
library(htmltools)
options(shiny.sanitize.errors = F)
ui <- fluidPage(
sidebarLayout(
sidebarPanel(width = 12,
fluidRow(width = 12,
tags$head(includeScript('script.js', 'type' = 'text/javascript', 'data-unique-tag' = 'unique')),
tags$head(includeCSS('style.css')),
htmlOutput('prop_slider')
),
),
# main panel ----
mainPanel(width = 12,
h3("I need values of the slider above to interact with :)")
)
))
server <- function(input, output, session) {
output$prop_slider <- renderUI({
tags$iframe(src = './index.html', width = '100%', height = 120, frameBorder="0")
})
}
# Run the application
shinyApp(ui = ui, server = server)
但是我不知道如何从此滑块中获取值。我通过 Chrome 确定了 html 的范围,它可以从 html 代码中获取:
但是我不知道如何让它活着并且可用于进一步的计算。如果有任何帮助,我将不胜感激......
【问题讨论】:
-
恐怕
iframe无法做到这一点。 'shinyWidgets' 包提供了 noUiSlider,它允许多拇指。但结果并不那么漂亮。 -
Stéphane Laurent,谢谢你,它真的帮助了我。我用它和堆积条来可视化它。我会尽快发布。然而......真的我们不能让它工作吗?也许有一些解决方法来制作 xml 文件,并以某种方式解析它?
标签: javascript html css r shiny