1

caniuse.com によると、Android はバージョン 3.0 以降、css 3d 変換を完全にサポートすることになっています。以下のテストのいずれか (Android 4.1、Samsng Galaxy など) を実行すると、true が返されます。ただし、3d 変換と preserve-3d を使用するページを表示すると、機能しません。例えば:

http://jsfiddle.net/bartaz/e3Rjz/show/

テスト 1:

(function(Modernizr, win){
    Modernizr.addTest('csstransformspreserve3d', function () {

        var prop = Modernizr.prefixed('transformStyle');
        var val = 'preserve-3d';
        var computedStyle;
        if(!prop) return false;

        prop = prop.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');

        Modernizr.testStyles('#modernizr{' + prop + ':' + val + ';}', function (el, rule) {
            computedStyle = win.getComputedStyle ? getComputedStyle(el, null).getPropertyValue(prop) : '';
        });

        return (computedStyle === val);
    });
}(Modernizr, window));

テスト 2:

Modernizr.addTest('csstransformspreserve3d', function () {

  var prop,
      val,
      cssText,
      ret;

  prop = 'transform-style';
  if ('webkitTransformStyle' in document.documentElement.style) {
    prop = '-webkit-' + prop;
  }
  val = 'preserve-3d';
  cssText = '#modernizr { ' + prop + ': ' + val + '; }';

  Modernizr.testStyles(cssText, function (el, rule) {
    ret = window.getComputedStyle ? getComputedStyle(el, null).getPropertyValue(prop) : '';
  });

  return (ret === val);
});

今、私は何が問題なのかわかりません。テストは機能しませんか? Android 4.1 は「preserve-3d」をサポートしていませんか? それとも他に何か問題がありますか?

4

2 に答える 2

1

組み込みのブラウザを使用している場合は、使用しているデバイスで GPU が有効になっているか、または GPU が搭載されているかを確認してください。

3d Transform はブラウザ + ハードウェアに完全に依存しているためです。

ハードウェア リソース (グラフィカル プロセッシング ユニット) を使用するため、デバイスに GPU がない場合、または GPU を無効にしている場合、3D 効果はレンダリングされません。

この部分を確認して、可能であれば返信してください..

私はこれがうまくいくことを願っています..

于 2013-07-01T03:40:53.780 に答える