この質問は、bsTooltip
一緒に使用できないことを発見した後に起こりましたshinyjqui
この質問をわかりやすくするために、私がこれまでに知っていることを説明します。
私は、数万行のコードからなるかなり大規模な光沢のあるアプリケーションに取り組んでおり、一度に 1 つのモジュールを構築し、動作したらメイン アプリケーションに配置しています。
現在、壁にぶつかっていますが、2 つの機能に互換性がないように見えます。の作者といくつかのメッセージを交換したところ、彼は、shinyjqui との互換性をなくすshinyjqui
古いバグがあることを教えてくれました: issue githubbootstrap
こんにちは @madmark81 、これは jquery-ui とブートストラップの間の互換性がないという古いバグです。実際、jquery-ui.js 自体をアタッチするだけで、shinyjqui をロードせずにツールチップを壊すことができます。
機能を組み合わせたいと思ってjqui_draggable
いますが、ユーザーが終了したときにそのポップアップを表示したり、他の要素をユーザーに提供したりしますjqui_sortable
help messages
hover
buttons
div
メッセージが入ったor要素を作って浮かせることを考えてwellpanel
いましたが、現時点ではそのような解決策を機能させる方法がわかりません。
最近の経験から、ggplot のホバー メッセージは、shinyjqui で問題を引き起こさないことがわかったので、おそらく希望があります。ただし、このフロート効果を自分で作成する方法はわかりません。
フローティングメッセージとshinyjquiのこの組み合わせを実現する方法を誰かが考えているなら、私はそれを聞いてとてもうれしく思います.
これまでに作成wellPanel
したz-index
のは、他の要素の上に配置するための ですが、これをリンク先の/イベントにのみ表示する100
方法を理解する必要があります。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')
})
}
)