我試圖找出一種方法來獲取一個actionButton來更改顏色(也可能是其他樣式元素) 目標是非常一般的,我會用它來獲得很多按鈕響應貫穿我的複雜shinyDashboard應用程序。簡單地說:如果點擊一個按鈕,或者鏈接到一個按鈕的特定元素(即inputslider)發生變化,該按鈕應該改變顏色。更改顏色actionButton Shiny R
我通常像這樣的代碼我的按鈕閃亮:
actionButton(inputId= "RunFullModel", label =icon("tree-deciduous", lib = "glyphicon"),
style = "color: white;
background-color: #35e51d;
position: relative;
left: 3%;
height: 35px;
width: 35px;
text-align:center;
text-indent: -2px;
border-radius: 6px;
border-width: 2px")),
我已經瀏覽我的屁股,但沒有運氣的東西,工作。 我一直在尋找@Dean Attali的shinyjs來做到這一點,但我只能讓它工作來改變打印文本的背景,如下例所示。看起來,使用ToggleClass或AddClass的部分對於actionButton(「x」,「y」)不起作用。 我也嘗試從閃亮的包本身使用updateActionButton,但是這似乎不允許將style =「...」包含在該命令中。
library(shiny)
library(shinyjs)
library(shinyBs)
if (interactive()) {
shinyApp(
ui = fluidPage(
useShinyjs(),
inlineCSS(list(.red = "background: red")),
inlineCSS(list(.blue = "style = 'background-color: blue'")),
actionButton("checkbox", "Make it red"),
bsButton("checkbox2", "Make me blue"),
p(id = "element", "Watch what happens to me")
),
server = function(input, output) {
observe({
toggleClass(id = "element", class = "red",
condition = input$checkbox)
})
observe({
toggleCssClass(id = "checkbox2", class = ".blue",
condition = input$checkbox)
})
}
)
}
shinyjs的演示模型在這裏找到:http://deanattali.com/shinyjs/overview#demo,它看起來好像toggleClass在那裏工作與ID按鈕「BTN」,但沒有代碼示例直接被發現,而從間接的例子shinyjs頁面的另一部分似乎不起作用。
選項3我嘗試讓style =「background-color:.... read R變量」部分訪問包含顏色名稱的R變量,即mycolor < - 「red」,但那不也可以工作,而且我對JavaScript的瞭解太少,無法弄清楚如何完成這項工作。
所以,....如果有人有一個想法如何使用shinyjs進行顏色切換工作,或者使用另一種方法與上面編寫的按鈕一起使用,我將非常感謝它,並且授予您我永恆的感激之情。 (一直停留在這幾個星期,現在這個問題)
馬克
附:我也研究過bsButtons,但它們對於我想要的默認類選項來說太有限了。
上帝就是這樣一個簡單的解決方案,我應該看到我自己,因爲我在我的應用程序中一直使用這種觀察方式。有時候,當你對某些事情感到困惑時,你的大腦就會失靈。謝謝! – Mark
沒有問題,我們都去過;) – BigDataScientist