我注意到,每当您单击任何 R Shiny 的标签时滑块输入控制时,窗口滚动到页面顶部。
为了说明这一点,请将 sliderInput 放置在页面的更下方(例如,在大块文本或图表之后),然后单击其标签。页面滚动到顶部。
我该如何抑制这种行为?我有一堆滑块供用户交互,位于页面的更下方。我不希望他们继续向下滚动只是为了与下一个滑块交互。
Minimum ui.R重现(基于你好闪亮的欢迎教程):
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)
)
)
))
我以前从未意识到这一点!
看起来发生这种情况是因为实际的 HTML 输入元素位于页面顶部,单击标签会将您带到输入位置。您看到的实际滑块是使用 javascript 创建的输入的修改版本,但 ID 为“bins”的实际 HTML 输入位于页面顶部。这有点技术性,但希望它有意义。
对于大多数其他不将原始 HTML 输入标记推到页面顶部的闪亮输入,这种情况不会发生。
在这种情况下,一种简单的解决方法是添加您自己的标签并使用label = NULL
在输入中。例如:
tags$label("Number of bins:"),
sliderInput("bins",
label = NULL,
min = 1,
max = 50,
value = 30)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)