Вам нужно скрыть элемент другими способами, чтобы заставить это работать.
Я выполнил эффект, полностью установив оба <div>
s и установив скрытый на opacity: 0
.
Если вы даже переключили свойство display
с none
на block
, ваш переход на другие элементы не будет происходить.
Чтобы обойти это, всегда позволяйте элементу быть display: block
, но скройте элемент, настроив любое из этих средств:
height
на 0
. opacity
значение 0
. overflow: hidden
. Возможны больше решений, но вы не можете выполнить переход, если вы переключите элемент на display: none
. Например, вы можете попробовать попробовать что-то вроде этого:
div {
display: none;
transition: opacity 1s ease-out;
opacity: 0;
}
div.active {
opacity: 1;
display: block;
}
Но это не сработает. По моему опыту, я нашел это, чтобы ничего не делать.
Из-за этого вам всегда нужно сохранить элемент display: block
, но вы можете обойти его, сделав что-то вроде этого:
div {
transition: opacity 1s ease-out;
opacity: 0;
height: 0;
overflow: hidden;
}
div.active {
opacity: 1;
height: auto;
}
rm(list = ls())
library(shiny)
members <- data.frame(name=c("Name 1", "Name 2"), nr=c('BCRA1','FITM2'))
ui <- fluidPage(titlePanel("Getting Iframe"),
sidebarLayout(
sidebarPanel(
fluidRow(
column(6, selectInput("Member", label=h5("Choose a option"),choices=c('BCRA1','FITM2'))
))),
mainPanel(fluidRow(
htmlOutput("frame")
)
)
))
server <- function(input, output) {
observe({
query <- members[which(members$nr==input$Member),2]
test <<- paste0("http://news.scibite.com/scibites/news.html?q=GENE$",query)
})
output$frame <- renderUI({
input$Member
my_test <- tags$iframe(src=test, height=600, width=535)
print(my_test)
my_test
})
}
shinyApp(ui, server)