Я хочу поместить div
в объект svg
в моем Shiny app
, как показано ниже -
library(shiny)
shinyApp(
ui = fluidPage(
div(id = "height: 255px; width: 205px",
tag("svg",
list('viewBox' = "0 0 500 150",
'preserveAspectRatio' = "none",
'style' = "height: 100%; width: 100%; filter: drop-shadow( 12px 12px 7px #00acd6 );",
tag("path", list('d' = "M0.28,-0.48 C178.61,30.09 229.40,133.70 501.41,129.77 L500.00,0.00 L0.28,-1.47 Z",
'style' = "stroke: #00acd6; stroke-width: 1px; fill: rgba(0,172,214, .01);"
)),
div(style = "height: 160px; width: 160px; background-color: rgba(0,0,0,.5);", HTML("AAA"))))
)
),
server = function(input, output) {
}
)
Причина, по которой 2-й div
находится внутри svg
, заключается в том, что 2nd div
всегда должен быть помещен в svg
даже при изменении размера родительского окна. Если родительское окно становится слишком маленьким, тогда svg
должен скрывать переполненную часть 2-го div
.
На основании предложения Роберта Лонгсона, я представил foreignObject
как ниже -
library(shiny)
shinyApp(
ui = fluidPage(
div(id = "height: 255px; width: 205px",
tag("svg",
list('viewBox' = "0 0 500 150",
'preserveAspectRatio' = "none",
'style' = "height: 100%; width: 100%; filter: drop-shadow( 12px 12px 7px #00acd6 ); overflow: hidden;",
tag("path", list('d' = "M0.28,-0.48 C178.61,30.09 229.40,133.70 501.41,129.77 L500.00,0.00 L0.28,-1.47 Z",
'style' = "stroke: #00acd6; stroke-width: 1px; fill: rgba(0,172,214, .01);"
)),
tag("foreignObject",
list(x = "0", y = "0",
width = "100%", height = "50%",
div(style = "height: 160px; width: 200px; background-color: rgba(0,0,0,1);
position: absolute; top: 0; right: 0;", HTML("AAA"))
))
))
)
),
server = function(input, output) {
}
)
Теперь, когда я вижу тень на каждом элементе в пределах foreignObject
. Можно ли как-нибудь r удалить тень от этих элементов и сохранить ее только с внешней границей?
Любой указатель, как этого добиться, будет очень полезен.
Спасибо,