我开发了一个R
shiny
应用程序使用优秀的
DT
包来处理数据表。其中一个表使用
styleColorbar
helper函数,它在表格单元格中生成与每个单元格的值成比例的彩色条。
这在运行Windows的Chrome和Firefox中运行得很好,但在运行Chrome或Sony Experia Android平板电脑的本地浏览器时,彩色条不会显示。
在这里的演示网页上也是如此:
https://rstudio.github.io/DT/functions.html
.
所以我不认为这是我使用代码的特定问题。
该函数基本上是一个JS包装器……我对JS一无所知。
styleColorBar = function(data, color, angle=90) {
rg = range(data, na.rm = TRUE, finite = TRUE)
r1 = rg[1]; r2 = rg[2]; r = r2 - r1
JS(sprintf(
"isNaN(parseFloat(value)) || value <= %s ? '' : 'linear-gradient(%sdeg, transparent ' + (%s - value)/%s * 100 + '%%, %s ' + (%s - value)/%s * 100 + '%%)'",
r1, angle, r2, r, color, r2, r
))
}
我在以下上下文中使用它:
dat = DT::datatable(diversity,
options = list(
scrollX = TRUE,
scrollY = 400,
autoWidth = TRUE,
columnDefs = list(
list(visible = FALSE, targets = hidden)
)
),
style = "bootstrap",
class = "table-striped table-compact",
extensions = c("FixedColumns"),
)
%>%
formatStyle(
c(1),
background = styleColorBar(c(0,diversity[,1]), 'olivedrab'),
backgroundSize = '99% 90%',
backgroundRepeat = 'no-repeat',
backgroundPosition = 'center'
)
有人能提出什么可能是错误的,以及在Android平台上工作的解决方案吗?
编辑:
我认为这可能是线性梯度语法的问题,它与早期版本的Android存在兼容性问题。然而,我在Android 4.1平板电脑上测试了它,所以不确定问题是什么。