Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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
R 滚动至导航栏页面的底部_R_Shiny_Shinyapps - Fatal编程技术网

R 滚动至导航栏页面的底部

R 滚动至导航栏页面的底部,r,shiny,shinyapps,R,Shiny,Shinyapps,假设我有一个下面闪亮的应用程序- 现在我想当用户第一次单击第二个选项卡时,应用程序应该自动向下滚动到容器页面和div的底部。我想进行一些平滑的滚动 有没有办法做到这一点 任何指针都将受到高度赞赏 根据@dcruvolo关于添加数据名的建议,我修改了应用程序- 很遗憾,滚动效果不可见。您可以通过创建事件侦听器滚动到页面底部,该侦听器在单击选项卡2时运行。选择所需的元素并提取scrollHeight属性的值,然后将其传递到jquery的scrollTop中。我已将其附加到document.body,

假设我有一个下面闪亮的应用程序-

现在我想当用户第一次单击第二个选项卡时,应用程序应该自动向下滚动到容器页面和div的底部。我想进行一些平滑的滚动

有没有办法做到这一点

任何指针都将受到高度赞赏

根据@dcruvolo关于添加数据名的建议,我修改了应用程序-


很遗憾,滚动效果不可见。

您可以通过创建事件侦听器滚动到页面底部,该侦听器在单击选项卡2时运行。选择所需的元素并提取scrollHeight属性的值,然后将其传递到jquery的scrollTop中。我已将其附加到document.body,但您可以用它替换您喜欢的任何元素

下面是使用点击事件的示例应用程序。我使用标记$script添加了它。要将事件附加到另一个选项卡,请用所需选项卡的名称替换数据值

有光泽的图书馆
谢谢。每次用户单击第二个选项卡时,此操作都会运行。然而,我打算让它只为第一次点击。有没有办法添加会话信息来实现这一点?请参阅更新的代码。我重组了点击事件。它现在使用绑定和取消绑定。我不确定开/关是否是更好的方法。我已经有一段时间没有使用jQuery了。谢谢。是否可以通过tabName=Tab2而不是data value=Tab2来调用此JS?对我来说,用tabName调用会更合适。我尝试使用[data name=\Tab2\],但它不起作用。没有自动生成的数据名属性。默认情况下,shiny使用tabPaneltitle=“data value”、….中的值生成属性数据值。。。。通过将data name=“Tab2”添加到tabPanel函数中,您可以将自定义数据属性添加到选项卡面板中。请确保数据名称用反勾号包装。我还没有测试它,但它可以工作。没有自动生成的数据名属性。默认情况下,shiny使用tabPaneltitle=“data value”、….中的值生成属性数据值。。。。通过将data name=“Tab2”添加到tabPanel函数中,您可以将自定义数据属性添加到选项卡面板中。请确保数据名称用反勾号包装。我还没有测试过,但它可以工作。
library(markdown)

ui =
shinyUI(
  navbarPage(id = "Navbar", "Navbar",
                tabPanel(tabName = "Tab1", "Tab1", 
                          div(style = "height: 2000px; width: 1500px; margin: 0; padding: 0; overflow-y: scroll;",
                                                div(style = "height: 3000px; width: 50%; margin: 0; padding: 0;",
                                                    HTML("A")))),
                tabPanel(tabName = "Tab2", "Tab2",
                          div(style = "height: 2000px; width: 1100px; margin: 0; padding: 0; overflow-y: scroll;",
                                                div(style = "height: 3000px; width: 50%; margin: 0; padding: 0;",
                                                    HTML("B"))))
              )
)

server =
function(input, output, session) {

}

shinyApp(ui = ui, server = server)
library(shiny)
ui <- tagList(
    navbarPage(
        id = "Navbar", "Navbar",
        tabPanel(
            tabName = "Tab1", "Tab1",
            div(
                style = "height: 2000px; width: 1500px; margin: 0; padding: 0; overflow-y: scroll;",
                div(
                    style = "height: 3000px; width: 50%; margin: 0; padding: 0;",
                    HTML("A")
                )
            )
        ),
        tabPanel(
            tabName = "Tab2", `data-name` = "Tab2", "Tab2",
            div(
                style = "height: 2000px; width: 1100px; margin: 0; padding: 0; overflow-y: scroll;",
                div(
                    style = "height: 3000px; width: 50%; margin: 0; padding: 0;",
                    HTML("B")
                )
            )
        )
    ),
    tags$script(
        "
        // select desired tab link
        $('a[data-name=\"Tab2\"]').bind('click', function(event) {

            // scroll to bottom of page
            $('html, body').animate({
                scrollTop: document.body.scrollHeight
            }, 500);

            // remove
            $(this).unbind('click');
        })
        "
    )
)

server <- function(input, output, session) {
}

shinyApp(ui = ui, server = server)