2

この質問は、bsTooltip一緒に使用できないことを発見した後に起こりましたshinyjqui

この質問をわかりやすくするために、私がこれまでに知っていることを説明します。

私は、数万行のコードからなるかなり大規模な光沢のあるアプリケーションに取り組んでおり、一度に 1 つのモジュールを構築し、動作したらメイン アプリケーションに配置しています。

現在、壁にぶつかっていますが、2 つの機能に互換性がないように見えます。の作者といくつかのメッセージを交換したところ、彼は、shinyjqui との互換性をなくすshinyjqui古いバグがあることを教えてくれました: issue githubbootstrap

こんにちは @madmark81 、これは jquery-ui とブートストラップの間の互換性がないという古いバグです。実際、jquery-ui.js 自体をアタッチするだけで、shinyjqui をロードせずにツールチップを壊すことができます。

機能を組み合わせたいと思ってjqui_draggableいますが、ユーザーが終了したときにそのポップアップを表示したり、他の要素をユーザーに提供したりしますjqui_sortablehelp messageshoverbuttons

divメッセージが入ったor要素を作って浮かせることを考えてwellpanelいましたが、現時点ではそのような解決策を機能させる方法がわかりません。

最近の経験から、ggplot のホバー メッセージは、shinyjqui で問題を引き起こさないことがわかったので、おそらく希望があります。ただし、このフロート効果を自分で作成する方法はわかりません。

フローティングメッセージとshinyjquiのこの組み合わせを実現する方法を誰かが考えているなら、私はそれを聞いてとてもうれしく思います.

これまでに作成wellPanelしたz-indexのは、他の要素の上に配置するための ですが、これをリンク先の/イベントにのみ表示する100方法を理解する必要があります。wellPanelhovermouseoveractionButton

ツールチップのみのアプリ:

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