データテーブルを処理する優れたパッケージを使用して Rshiny
アプリを開発しました。DT
テーブルの 1 つは、styleColorbar
各セルの値に比例してテーブル セルに色付きのバーを生成するヘルパー関数を使用します。
これは、Windows で実行されている Chrome および Firefox では問題なく動作しますが、Chrome または Sony Experia Android タブレットのネイティブ ブラウザで実行すると、色付きのバーが表示されません。
これは、 https ://rstudio.github.io/DT/functions.html のデモンストレーション Web ページにも当てはまります。したがって、コードの使用に固有の問題ではないと思います。
関数は基本的に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 タブレットでテストしたので、何が問題なのかわかりません。