2

这个问题是在我发现bsTooltip不能与shinyjqui

为了使这个问题易于理解,我将解释到目前为止我所知道的。

我一直在开发一个包含数万行代码的相当大的闪亮应用程序,一次构建一个模块,并在它工作后将其放入主应用程序。

现在我遇到了一堵墙,但是其中 2 个功能似乎不兼容。我与 of 的作者交换了一些信息,shinyjqui他告诉我有一个旧 bugbootstrap导致它与 shinyjqui 不兼容:issue github

嗨@madmark81,这是jquery-ui 和bootstrap 之间不兼容的一个老错误。实际上,附加 jquery-ui.js 本身就足以在不加载 shinyjqui 的情况下破坏工具提示:

我真的很想结合jqui_draggablejqui_sortable功能,但也为我的用户提供当你结束help messages时的弹出窗口和其他元素hoverbuttons

我正在考虑使用其中的消息制作一些divwellpanel元素并使它们浮动,但此时我不知道如何使这样的解决方案起作用。

最近的经验告诉我,ggplot 的悬停消息不会导致shinyjqui 出现问题......所以也许有希望。但是,我自己不知道如何创建这种浮动效果。

如果有人知道如何实现浮动消息和 shinyjqui 的组合,我会很高兴听到它,并看看如何做到这一点

到目前为止,我构建的是wellPanelz-index100放在其他元素之上的一个,但我需要弄清楚如何让它wellPanel只出现在我想要链接到的hover/mouseover事件上。actionButton

仅带有工具提示的应用程序:

library("shiny")
library("shinyBS")  #needed to use bsTooltip
shinyApp(  
  ui = fluidPage(
    actionButton("Click", "Click Me"),
    bsTooltip(id = "Click", title = "hello message", placement = "right", trigger = "hover", options= list(container = "body", delay = list(show=100, hide=150)))
  ),

  server =  function(input, output, session) {
  }
)

应用程序中只有 shinyjqui 功能

library("shiny")
library("shinyjqui")
shinyApp(      
  ui = fluidPage(
    jqui_resizable(
        actionButton("Click", "Click Me")
    )
  ),

  server =  function(input, output, session) {
  }
)

带有组合的应用程序(以说明损坏的消息)和新的悬停方法理念

library("shiny")
library("shinyjqui")
library("shinyBS")  #needed to use bsTooltip

## unload packages if needed for testing
# unload('shinyjqui')
# unload('shinyBS')


shinyApp(
  ui = fluidPage(
    h3("hello!"),
    jqui_resizable(
        actionButton("Click", "Click Me")
    ),

    ## this only works without loading shinyjqui
    ## use unload('shinyjqui') if you already loaded it
    bsTooltip(id = "Click", title = "hello message", placement = "right", trigger = "hover", options= list(container = "body", delay = list(show=100, hide=150))),

    ## This is the alternative so far, but needs to be only shown on hover
    uiOutput('hoverWell')
  ),

  server =  function(input, output, session) {

    output$hoverWell <- renderUI({
      wellPanel(h5('info message'), style = 'position:absolute; z-index:100; background-color: #e6f3f7; border-color: #339fff; left:85px; top:85px; height:40px;padding-top:0px')

    })
  }
)
4

0 回答 0