1
我有一個標籤閃亮的應用程序,根據用戶輸入生成相當多的內容,我試圖弄清楚如何滾動到活動選項卡的底部每次新內容是產生。我試着實現這個question給出的答案,但它似乎並沒有工作。我對javaScript有很少的經驗,所以它可能只是需要改變我的具體示例。下面是我嘗試從連問題實施答案很無聊的玩具例子:自動滾動按鈕點擊閃亮
library(shiny)
ui <- fluidPage(
tags$script(
'
Shiny.addCustomMessageHandler("scrollCallback",
function(color) {
var objDiv = document.getElementById("outDiv");
objDiv.scrollTop = objDiv.scrollHeight;
}
);'
),
tabsetPanel(id = "mainPanels",
tabPanel("FirstPanel",
actionButton("outGen", "GenerateOutput"))),
uiOutput("randomOutput")
)
server <- function(input, output, session) {
output$randomOutput <- renderUI({
req(input$outGen)
lapply(1:50, function(x)p("FooBar"))
})
observeEvent(input$outGen,{
session$sendCustomMessage(type = "scrollCallback", 1)
})
}
runApp(shinyApp(ui,server))
我試圖找到一種方式,一旦產生輸出按鈕被按下滾動到標籤的底部。
太棒了!感謝您提供非常完整的答案。 –
這可能超出了原始問題的範圍,但有沒有辦法通過訪問主體滾動來實現這一點?這將適用於而不是使用一個uiOutput閃亮的應用程序使用多個uiOutupts。所以你不能在每個輸出的div內滾動。 –
不要緊,我只是通過把'window.scrollTo(0,document.body.scrollHeight);'放到函數中而不是訪問div的行中。 –