我注意到,只要您点击任何R Shiny sliderInput 控件的标签,该窗口就会滚动到页面顶部。 为了说明这一点,请将sliderInput进一步放在页面上(例如,在大块文本或图表之后,然后单击其标签。页面滚动到顶部。
如何抑制此行为?我有一堆滑动器供用户进行交互,更多的是在页面上..我不希望他们不得不向下滚动以便与下一个滑块进行交互。
要重现的最小 ui.R (基于hello有光泽的欢迎教程):
library(shiny)
shinyUI(fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
p('nothing in sidebar')
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot"),
p('Lorem Ipsum....'), #giant text block to trigger vertical scrollbars in browser.
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
)
)
))
答案 0 :(得分:0)
我之前从未意识到这一点!
看起来这种情况正在发生,因为实际的HTML输入元素位于页面的顶部,单击标签会将您带到输入的位置。您正在看到的实际滑块是使用javascript创建的输入的修改版本,但实际的HTML输入的ID为" bins"位于页面顶部。这有点技术性,但希望它有意义。
大多数其他闪亮输入不会将原始HTML输入标记推送到页面顶部,这不会发生。
在这种情况下,一个简单的解决方法是使用添加自己的标签并在输入中使用label = NULL
。例如:
tags$label("Number of bins:"),
sliderInput("bins",
label = NULL,
min = 1,
max = 50,
value = 30)