“preserve-3d”的测试不是在Android(通过Browserstack)工作? [英] Tests for "preserve-3d" are not working on Android (via Browserstack)?

查看:111
本文介绍了“preserve-3d”的测试不是在Android(通过Browserstack)工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

根据caniuse.com,Android应该支持css 3d转换完全从版本3.0。当我运行下面的测试之一(例如在Android 4.1,Samsng Galaxy),他们返回true。但是,当我查看使用3d变换和保存-3d的页面不工作。例如:

Android is supposed to support css 3d transforms completely since version 3.0 according to caniuse.com. When I run one of the tests below (e.g. on Android 4.1, Samsng Galaxy), they return true. However, when I view a page that uses 3d transforms and preserve-3d it doesnt’t work. For example:

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吗?

Now I don’t know what the problem is. Do the tests not work? Does Android 4.1 not support "preserve-3d"? Or is something else wrong?

推荐答案

您遇到的是模拟器中的缺陷;您的测试用例在运行Android 4.0.4和4.1.2的真实设备上正常工作。 Android模拟器GPU模拟在软件中,不实现所有必需的3D功能,这就是为什么功能测试成功,即使渲染是错误的。 (浏览器支持它们,但底层的GPU仿真不支持。)

What you are experiencing is a defect in the emulator; your test case works fine on a real device running Android 4.0.4 and 4.1.2. The Android emulator GPU is emulated in software which does not implement all of the required 3D functionality, which is why the feature tests succeed even though the rendering is wrong. (The browser supports them, but the underlying GPU emulation does not.)

这篇关于“preserve-3d”的测试不是在Android(通过Browserstack)工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆