RShiny не отображает необработанный код HTML и CSS для всплывающей подсказки - PullRequest
1 голос
/ 04 августа 2020

Итак, в основном я хочу реализовать всплывающую подсказку для некоторого текста в моем приложении RShiny и попытался сделать это, используя необработанные стили HTML и CSS. У меня нет большого опыта работы с HTML и особенно CSS, а также с включением их в приложения Shiny, но с использованием приведенного ниже кода (а также попытки вставить необработанный CSS с HTML из которых работает в любых HTML редактор, тоже пробует htmlOutput ()) нет вывода. Думаю, мне интересно, какие ограничения есть у RShiny в отношении включения HTML и CSS, а всплывающая подсказка CSS - это элемент, который он не принимает. И если ответ не ограничен, то где я могу ошибиться с этим подходом.

library(shiny)

ui <- fluidPage(
  tags$head(
          tags$style(HTML(".tooltip {
                    position: relative;
                    display: inline-block;
                    }

                    .tooltip .tooltiptext {
                    visibility: hidden;
                    width: 120px;
                    background-color: blue;
                    color: #fff;
                    text-align: center;
                    border-radius: 6px;
                    padding: 5px 0;

                    position: absolute;
                    z-index: 1;
                    }

                    .tooltip:hover .tooltiptext {
                    visibility: visible;
                    }")
                     )
          ),
  uiOutput("html")
)

server <- function(input, output) {
   output$html <- renderUI({
     HTML('
          <body style="text-align:center;">
          <p class="tooltip">TEXT
            <span class="tooltiptext">Tooltip text</span>
          </p>
          </body>
          ')
   })
}

shinyApp(ui = ui, server = server)

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Это потому, что класс tooltip уже определен в Shiny. В противном случае ваш код правильный. Поэтому используйте другое имя, например, mytooltip. Кроме того, не используйте тег body в своем HTML, тег body уже существует, и он должен быть уникальным.

введите описание изображения здесь

0 голосов
/ 05 августа 2020

Простой способ добавлять всплывающие подсказки в блестящем режиме - использовать пакет shinyBS.

https://ebailey78.github.io/shinyBS/index.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...