DT 包:styleColorbar() 在 Android 平板电脑上不起作用
DT package: styleColorbar() not working on Android tablets
我开发了一个 R shiny
应用程序,使用优秀的 DT
包来处理数据表。其中一个表使用 styleColorbar
帮助程序函数,该函数在表格单元格中生成与每个单元格的值成比例的彩色条。
这在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 4.1平板电脑上对其进行了测试,因此不确定问题是什么。
我在Github上提出了同样的问题,yihui的回应可以在这里找到:https://github.com/rstudio/DT/issues/222。他认为这个问题可以通过使用-webkit-
来解决。其他在线信息也表明,这应该适用于较旧的Android系统。我将在这里发布他的代码以帮助其他人:
styleColorBar2 = function(...) {
sub('linear-gradient', '-webkit-linear-gradient', styleColorBar(...))
}
我不确定如何从R中检测系统上运行的Android版本,但这是一个单独的问题。
相关文章:
- 隐藏移动设备/平板电脑中文本字段上的键盘
- plupload智能手机和平板电脑浏览按钮事件未启动
- iOS iPad平板电脑渲染视口不正确
- 创建一个工具来打开android平板电脑上的本地pdf文件
- jQuery Ajax在Android平板电脑浏览器上失败
- event.prventDefault()不在使用touchstart的Android平板电脑上
- JavaScript,CSS,Android平板电脑的HTML5编辑器
- 通过JavaScript检测和区分Android平板电脑和Android手机
- 如何在平板电脑和手机的Android设备的方向更改中获得正确的窗口宽度
- DT 包:styleColorbar() 在 Android 平板电脑上不起作用
- 如何在平板电脑和手机的android设备的方向更改上获得正确的窗口宽度
- iPad / Android平板电脑的HTML5 Canvas(游戏)
- 哪些Android平板电脑可用于测试Javascript繁重的web应用程序
- Cordova滑动事件检测选项为Android, iOS和Windows平板电脑
- 通过javascript检测Android设备是手机还是平板电脑
- 如何为Windows 8和Android平板电脑制作D3js应用程序
- 如何在Android平板电脑上保存密码自动登录chrome-mobile网站
- 检测Android智能手机或Android平板电脑与JS
- 需要:离线IDE,用于在Android平板电脑上开发HTML / JavaScript
- 在Android平板电脑/手机上调试javascript