library(slickR)
The most flexible implementaton of slickR
is by building
your own DOM elements and passing them into slickR
.
We build the img DOM from scratch:
<- htmltools::tags$img(src = nba_player_logo$uri[1]) img_bare
::slickR(img_bare) slickR
<- lapply(nba_player_logo$uri[c(1:5)],function(x){
imgs_bare ::tags$img(src = x)
htmltools
})
::slickR(imgs_bare) slickR
slick_div
is an S3
method which accepts
different object classes such as character
,
shiny.tag
,htmlwidget
,
xml_document
objects. It will also internally convert a
vector a elements so the user does not need to use lapply in their
script.
It will also add some css style to the elements to center them in the carousel.
::css(marginLeft='auto',marginRight='auto')
htmltools#> [1] "margin-left:auto;margin-right:auto;"
::slickR(slick_div(nba_player_logo$uri[c(1:5)])) slickR
We can also mix three different DOM types: img
,
p
, iframe
. In the iframe
we will
place a leaflet
htmlwidget.
We put in Lorem ipsum into the paragraph
<- htmltools::tags$p(
p "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
style = htmltools::css(color='red','font-style' = 'italic')
)
<- slick_div(
w x = leaflet::addTiles(leaflet::leaflet()),
css = htmltools::css(
height = '400px',
marginLeft ='auto',
marginRight='auto')
)
To pass a list of shiny.tag
elements into
slickR
we first convert the individual
shiny.tag
into a tagList
using
slick_list
.
<- slick_list(img_bare,p,w) doms
::slickR(doms) + settings(dots = TRUE, adaptiveHeight = TRUE) slickR