收藏
回答

3D翻转特效在安卓手机中只显示一个面?

框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
小程序 Bug Android 鸿蒙os 3.0.0 华为 8.0.32

iOS跟开发工具都显示正常,安卓手机只显示一面,正常情况下是四个面,请问怎么解决


最后一次编辑于  2023-02-21
回答关注问题邀请回答
收藏

1 个回答

  • 公子晨阳(ノ_ _)ノ
    公子晨阳(ノ_ _)ノ
    2023-02-27

    您好,正常情况下只应该显示一个面。iOS 和开发者工具的表现反而是错误的,这是由于当前版本 Safari 和开发者工具使用的 Chromium 并未正确实现标准中的 CSS Transforms。

    首先,transform-style 是一个不可继承的 CSS 属性,您需要为这颗组件树中的每一个非叶子节点显式声明该属性。

    其次,transfrom 应且只应作用于可变换元素(transfromable element)。您使用引入的 swipertd-item 组件时,小程序组件框架会在页面上创建同名的 swipertd-item 元素相关文档)。它的 display 属性默认是 inline,不是一个可变换元素。您需要为其声明 display: block。事实上,声明为其他值也是可以的,只要符合这里的定义即可。

    在您提供的例子中,有两种做法可以实现题目所描述的“错误结果”。

    方法一:为 swipertd-item 组件编写以下样式:

    :host {
      display: block;
      transform-style: preserve-3d;
    }
    


    方法二:为 swiperd-item 组件声明 virtualHost 选项,阻止生成多余的 swipertd-item 元素

    Component({
      options: {
        virtualHost: true // 开启 virtualHost 后,将不再生成同名的元素
      },
      // ...其他组件定义
    }
    


    2023-02-27
    有用 2
    回复 1
    • 孓了
      孓了
      2023-03-03
      可以了,非常感谢
      2023-03-03
      回复
登录 后发表内容