【问题标题】:Widgets appear with mouse over鼠标悬停时出现小部件
【发布时间】:2019-11-01 11:43:10
【问题描述】:

我希望一个小部件在鼠标光标悬停在它上面之前是不可见的。

使用shinyjs,我可以在光标进入“区域”时显示/隐藏小部件。但是我想把小部件放在区域中可以这么说。这可能吗?

据我所知:

library(shiny)
library(shinyjs)

shinyApp(

 ui = fluidPage(
    useShinyjs(), 
    p(id="Area","Area"),   
    selectInput("A_widget", label = "A widget", choices=c("None"), selected="None")   
 ),

 server = function(input, output) {
    shinyjs::hide("A_widget")
    onevent("mouseenter", "Area", shinyjs::show("A_widget"))
    onevent("mouseleave", "Area", shinyjs::hide("A_widget"))
 }

))

我想要这样的伪代码,鼠标在“区域”上的小部件:

library(shiny)
library(shinyjs)

shinyApp(

 ui = fluidPage(
    useShinyjs(), 
    p(id="Area", selectInput("A_widget", label = "A widget", choices=c("None"), selected="None"))
 ),

 server = function(input, output) {
    shinyjs::hide("A_widget")
    onevent("mouseenter", "Area", shinyjs::show("A_widget"))
    onevent("mouseleave", "Area", shinyjs::hide("A_widget"))
 }

))

我想要一个鼠标悬停时出现的小部件。谢谢!

【问题讨论】:

  • 我愿意接受的另一种选择是让 onevent() 对小部件本身做出反应,而不是使用隐藏/显示,只需将整个事物重新着色为白色以使其“不可见”,然后返回到鼠标悬停时颜色正确。

标签: r shiny shinyjs


【解决方案1】:

使用带尺寸的 div:

library(shiny)
library(shinyjs)

shinyApp(

  ui = fluidPage(
    useShinyjs(), 
    div(id="Area", style = "width:300px;height:50px", 
        selectInput("A_widget", label = "A widget", choices=c("None"), selected="None"))
  ),

  server = function(input, output) {
    shinyjs::hide("A_widget")
    onevent("mouseenter", "Area", shinyjs::show("A_widget"))
    onevent("mouseleave", "Area", shinyjs::hide("A_widget"))
  }

)

【讨论】:

  • 太棒了!为我节省了大量时间。非常感谢,非常感谢!
  • 鼠标悬停时可以显示图片吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
  • 2021-02-20
  • 2011-05-26
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多