如何解决在 R 的 slickR carousel 中移动上一个下一个按钮
我可以成功移动 slickr 轮播的“下一步”按钮。但是,当我使用类似的方法移动“上一个”按钮时,它不起作用。动作和鼠标悬停不再起作用。为什么是这样?如何移动“prev”按钮并保持完整功能?
documentation 是指名为 appendArrows
的设置中的元素。但是我不清楚如何使用它。
appendArrows character,Change where the navigation arrows are attached (Selector,htmlString,Array,Element,jQuery object),Default: $(element)
这里是功能齐全的移动按钮应该出现的地方:
library(shiny)
library(slickr)
# Test #########################################################################
chart_names_list <- c( "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+1","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+2","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+3")
num_slides <- 2
ui <- fluidPage(
tags$head(
tags$style(HTML("
.slick-next {
right: 163px;
top: 20px;
}
.slick-prev {
left: 670px;
top: 20px;
}
.slick-slide {
margin-top: 30px;
}
")
)
),slickrOutput("slick_output")
)
server <- function(input,output,session) {
output$slick_output <- renderslickr({
slickr(obj = chart_names_list,height = 300,width = "100%") +
settings(dots = TRUE)
})
}
shinyApp(ui,server)
解决方法
appendArrows
参数用于告诉应该在哪个 div
类中显示箭头。
这显示了原理,但仍需要一些额外的 css
才能获得您期望的准确结果:
library(shiny)
library(slickR)
# Test #########################################################################
chart_names_list <- c( "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+1","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+2","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+3")
num_slides <- 2
ui <- fluidPage(
tags$head(
tags$style(HTML("
.arrows {
height: 30px;}"))
),fluidRow(
column(6,),column(2,tags$div(class="arrows"
)),column(4)),slickROutput("slick_output")
)
server <- function(input,output,session) {
output$slick_output <- renderSlickR({
slickR(obj = chart_names_list,height = 300,width = "100%") +
settings(dots = TRUE,appendArrows = '.arrows')
})
}
shinyApp(ui,server)
,
由于这是关于箭头按钮定位的原始问题,我想值得一提的是,@ixodid 意识到 here,@Waldi 的 column-approach 在浏览器窗口打开时不再工作调整大小。
以下是对此的解决方法:
library("shiny")
library("slickR")
chart_names_list <- c( "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+1","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+3")
num_slides <- 3
ui <- fluidPage(
tags$head(
tags$style(HTML("
.arrows {
height: 20px;
}
.slick-prev {
left: calc(100% - 60px);
}
.slick-next {
left: calc(100% - 35px);
}
.slick-slide img {
width: 100% !important;
}
"))
),fluidRow(
column(12,tags$div(class="arrows"))
),height = 300) +
settings(dots = TRUE,server)
,
采纳@Waldi 的宝贵建议并添加一些 css 会得到下面的完整答案。
library("shiny")
library("slickR")
# Test #########################################################################
chart_names_list <- c( "http://placehold.it/900x500/39CCCC/ffffff&text=Slide+1","http://placehold.it/900x500/39CCCC/ffffff&text=Slide+3")
num_slides <- 3
ui <- fluidPage(
tags$head(
tags$style(HTML("
.arrows {
height: 30px;
}
.slick-prev {
left: 230px; # moves right
}
.slick-next {
left: 250px; # moves right
}
"))
),tags$div(class="arrows"
)),server)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。