webkit translate3d 问题(peek-thru)

2024-04-26

我正在使用 PhoneGap 构建一个 iOS 应用程序。我使用translate3d CSS 动画来创建“翻转”效果。

这对于更简单的元素非常有用...带有前/后 div 的 DIV,可能还有一个或两个额外的跨度。

但是当我尝试翻转更大的元素......即整个屏幕时,我会遇到重绘故障。一旦我交换 css 类来开始转换,会发生什么,“底部”div 的一部分会弹出“顶部”div,然后发生翻转,然后再次弹出。而且它并不是显示整个元素...它是沿着我正在执行平移 3d 旋转的轴分割的元素的一半。

关于可能导致这种情况的任何想法或理论?在 iPad 上作为应用程序以及在 Safari 桌面上发生的情况都是一样的,因此似乎是一个 webkit 问题。

会不会是一些 CSS 问题?或者尝试使用复杂的嵌套元素进行全屏translate3d 旋转,其中的大背景图像超出了Safari 可以处理的范围?

更新1:

我在缩小问题范围方面取得了进展。

发生的情况是,当我执行translate3d 翻转时“窥视”的元素恰好是之前通过translate3d 定位的子元素。

我想用translate3d转换我的“页面”结构:

<div id="frontbackwrapper">
    <div id="front">    
    </div><!--/front-->
    <div id="back">  
    </div><!--/back-->
</div><!--/frontbackwrapper-->  

这本身就有效。前面的 div 被后面的 div 替换,具有卡片翻转的效果。

问题是,在进行整页翻转之前,我已经对其中的一些元素进行了动画处理#front使用translate3d的div:

<div id="frontbackwrapper">
    <div id="front">  

        <div class="modal"></div>  

    </div><!--/front-->
    <div id="back">  
    </div><!--/back-->
</div><!--/frontbackwrapper--> 

CSS 示例:

.modal {
    width: 800px;
    height: 568px;
    position: absolute; 
    left: 112px;
    z-index: 100;
    -webkit-transition-duration: 1s;
    -webkit-transform: translate3d(0,-618px,0); /* set off screen by default */
 }
.modal.modalOn {
    -webkit-transform: translate3d(0,80px,0); /* slides the div into place */
 }

如果——而不是使用translate3d——我只是用a重新定位divtop设计或改变top财产,我不明白偷看问题。当然,这意味着我必须分别放弃流畅的动画或硬件加速。

此时,它看起来像是一个 webkit bug。我会继续玩它。如果有人以前遇到过这个问题并找到了解决方法,我洗耳恭听!


解决方案!经过一夜的睡眠,我思考了罪魁祸首以及该如何处理。这不一定是使用translate3d 为子元素设置动画的行为,而是被翻译的元素在使用translate3d 对其父元素进行动画处理时具有该CSS 属性的情况。

解决方法是首先为子元素设置动画,然后一起删除翻译样式。

CSS 结构现在是:

/* default class for the start of your element */
.modal-startposition {
  -webkit-transition-duration: 1s;
  -webkit-transform: translate3d(0,-618px,0);
  }

/* add this class via jQuery to then allow
   webkit to animate the element into position */
.modal-animateposition {
  -webkit-transform: translate3d(0,80px,0);
}

/* when animation is done, remove the above class
   and replace it with this */
.modal-endposition {
  top: 80px;
}

还有一些 jQuery 示例:

//[attach a click event to trigger and then...]
$myModal
    .addClass("modal-animateposition")
    .on('webkitTransitionEnd',function () {
         $myModal
            .removeClass('modal-startposition')
            .removeClass('modal-animateposition')
            .addClass('modal-endposition');
    });

有点繁琐,但它完全解决了屏幕重画问题。

编辑:更正了一个错字

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webkit translate3d 问题(peek-thru) 的相关文章

  • 如何修复C风格的for语句?

    什么是正确的修复方法C 风格的 for 语句对于下面发布的代码 目前我正在交战 C 风格的 for 语句已弃用 并将在将来删除 斯威夫特的版本 var ifaddr UnsafeMutablePointer
  • iOS UITableViewCell 配件在左侧?

    对于我的应用程序 我想要一些可以同时具有复选标记和详细信息披露按钮的单元格 也就是说 我希望它们看起来与 iOS 设置中的 Wi Fi 网络选择一模一样 左侧的复选标记 中间的内容 右侧的详细信息披露按钮 有没有正确的方法来做到这一点 或者
  • Xcode 不会在故事板中显示我的文本字段占位符文本

    当我在属性检查器中分配文本字段的占位符值时 它不会显示在故事板中 但是 当我运行应用程序的模拟器时 它就在那里 我缺少什么设置吗 我只想能够在编辑器中看到占位符文本 下面是 xcode 和模拟器之一的屏幕截图 我遇到了同样的问题 幸运的是我
  • 应用程序图标未刷新

    我更改了新版本应用程序中的图标图像 并且我在设备中安装了旧版本应用程序 然后我安装了新版本 它在 iOS 5 中运行良好 但在 iOS 6 中 图标没有刷新 它仍然显示旧版本图标 徽标 如果没有安装旧版本应用程序 该设备在 iOS 5 和
  • 适用于 iOS 的 Google Cast SDK 2.3.0 不支持 64 位

    似乎是适用于 iOS 的 Google Cast SDK 2 3 0 版本 https developers google com cast downloads GoogleCastFramework 2 3 0 Release zip停止
  • 使用 UIActionSheet 更改视图时工具栏项目消失

    当从 a 启动视图时UIActionSheet按钮 通过导航栏后退按钮返回视图后 工具栏虽然仍然可见 但上面没有任何以前的按钮 自从更新到 iOS 6 以来 这个错误就出现了 并且是在模拟器和仅运行 iOS 6 的设备上测试时发生的 如果我
  • iOS App布局错误,调用状态栏

    在主动通话和应用程序布局期间面临状态栏问题 我正在使用自动布局 当我运行应用程序 然后开始通话时 一切正常 UI 会随着状态栏的更改而正确缩放 但是 如果我首先开始通话 然后运行应用程序 应用程序屏幕会移动到底部 20pt 就像它们对新状态
  • iOS 开发: [[self navigationController] viewControllers]; 有哪些原因?会返回零吗?

    以下语句返回零 NSArray viewControllersInNavStack self navigationController viewControllers 这个语句是在导航堆栈中大约四层深度的视图控制器中调用的 所以我不明白它如
  • iOS 外部附件框架:如何获取特定 MFI 设备的协议字符串

    我正在编写一个 iOS 应用程序 用于与 mini mPlay Drumi MP18B 小型蓝牙扬声器 进行通信 据我所知 showBluetoothAccessoryPickerWithNameFilter仅显示协议字符串添加到 Info
  • 在 iOS 中录制音频并永久保存

    我制作了 2 个 iPhone 应用程序 可以录制音频并将其保存到文件中并再次播放 其中之一使用 AVAudiorecorder 和 AVAudioplayer 第二个是苹果的在这里说话 http developer apple com l
  • 在 Interface Builder 中的资产目录上使用图像

    是否可以直接在界面生成器上使用添加到资产目录中的图像 这是怎么做到的 在 UIImageView 属性上 我看不到任何引用资产目录上任何图像的选项 Import the images into the xcassets folder 单击右
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 如何从 NSString 中删除十六进制字符

    我面临一个与字符串中的某些十六进制值相关的问题 我需要从字符串中删除十六进制字符 The problem is when i print object it prints as BLANK line And in debug mode it
  • iOS 中的等宽字体是什么?

    我想要在我的 iOS 应用程序中为 UILabel 使用等宽字体 不幸的是 我找不到一个 甚至 美国打字机 实际上也不是等宽的 XCode 中可用的等宽字体是什么 iOS 等宽字体 Courier Courier Bold Courier
  • 如何在缩放动画中保持原点位于图像中心?

    我有类似的情况fiddle https jsfiddle net ddvn3p1h 3 其中我有一个 CSS3 动画 可以缩放绝对定位在另一个元素中心的元素 但是 当动画发生时 它会偏离中心 如示例中相对于蓝色的红色方块所示 我如何将其居中
  • 在WKWebview中设置useragent

    如何在 WKWebView 中设置自定义用户代理字符串 我正在尝试嵌入我的应用程序的版本 以便我的服务器端可以看到可用的功能 我找到了以下方法 let userAgent MyApp 1 33 7 request setValue user
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f
  • 通用类不会将委托调用转发给具体子类

    鉴于以下情况 protocol EntityType var displayString String get extension String EntityType var displayString String return self

随机推荐

  • 从霍夫线中选择线

    I m using Hough Lines to do corner detection for this image i plan to find the intersection of the lines as the corner T
  • Java 中的生命游戏,人口过剩但不明白为什么

    这是家庭作业 我在底部添加了相关代码 Problem 在试图允许用户调整网格大小时 网格现在被绘制得严重过度填充 截图 人口过剩 https i stack imgur com 0Ilrq png https i stack imgur c
  • 使我的循环每 x 分钟后运行一次的函数

    我想要一个 r 函数 它使我的循环每 5 分钟运行一次 我有一个从谷歌财经下载市场数据的循环 我希望这个循环每 30 分钟运行一次 是否可以 使脚本循环的另一种方法是 使用外部作业调度工具在所需的时间间隔内调用脚本 如果你有linux 我建
  • R 中已知固定截距的线性回归

    我想使用 R 中的 lm 函数计算线性回归 此外 我想获得回归的斜率 其中我明确给出截距lm 我在互联网上找到了一个例子 我尝试阅读 R help lm 不幸的是我无法理解它 但我没有成功 谁能告诉我我的错误在哪里 lin lt data
  • Angular 2 路由器无法处理传递的多个参数

    我创建了一个示例 Plunker 将多个参数传递到下一页 但它不起作用 这是 Plunker 演示 其中单击项目后危机中心路由不起作用 http plnkr co edit ngNSsKBzAuhaP0EjKVJX p preview ht
  • NSSharingService 在默认电子邮件 MAC OSX 应用程序中设置抄送和密件抄送收件人

    我是 Mac OS X 应用程序开发的新手 我的问题很简单 我可以通过我的应用程序在默认邮件应用程序中设置收件人和正文文本 但我无法在邮件应用程序中设置抄送和密件抄送收件人 有没有办法通过代码设置CC和BCC 我正在使用Swift 我的设置
  • 无法解析“USERNAME”列

    我开发 Spring Framework MVC 应用程序 我也使用休眠 现在我为 User 实体制作简单的 POJO Entity Table name USERS public class User Column name USERNA
  • strdup 还是 _strdup?

    当我使用strdup在 Microsoft Visual C 中 它警告我 警告 C4996 strdup 此项目的 POSIX 名称已弃用 相反 请使用 ISO C 一致名称 strdup 详情请参见在线帮助 如此看来 strdup是正确
  • 为什么用“自我”。什么时候不被强迫?

    我注意到我的编码方式 糟糕 和我从其他人那里看到的代码之间存在差异 谁能解释一下为什么我看到有些人使用 self varname anotherpropertie When varname anotherpropertie 似乎也同样有效
  • 将对象从一个派生类更改为另一个派生类

    我有几个类共享一个公共基类 除了它们的方法工作方式不同之外 因此 在下面的示例中 加法器和乘法器除了执行计算的方式不同之外都是相同的 有没有办法即时将 a 更改为乘数 我是否需要实现派生类之间相互转换的方法 例如就像是 a a asMult
  • JQuery Internet Explorer 和 ajaxstop

    document ajaxStart function loading show document ajaxStop function loading hide 如何在 Internet Explorer 中调用 ajaxStop 事件 a
  • H2数据库,通过从CSVREAD选择结果插入

    我有一个 CSV 文件 例如 1 hello 13 2 world 14 3 ciao 26 我正在尝试使用CSVREAD函数将该文件读入数据库 如下所示 insert into my table id message code value
  • 使用 JGit TreeWalk 列出文件和文件夹

    我想使用 JGit 显示头部修订的所有文件和文件夹的列表 我可以使用 TreeWalk 列出所有文件 但这不会列出文件夹 这是我到目前为止所拥有的 public class MainClass public static void main
  • javax.xml.stream.XMLStreamException:[行,列]处的解析错误:[2,1](jboss-deployment-struct.xml)

    我希望我的应用程序使用验证 api 1 1 0 Finaljar 而不是容器提供的 jar验证 api 1 0 0 GAJBoss AS 7 1 1 附带 我创建了JBossjboss 部署 结构 xml如下
  • 当你说 Ruby 是反射型时,这主要是指“鸭子类型”吗?

    我正在读一篇描述 Ruby 的文章 其中写道 Ruby 被认为是 反思性的 语言 因为有可能 Ruby 程序分析自身 在 其构成条款 使 调整其工作方式 以及 甚至用其他代码覆盖自己的代码 代码 我对 反射 这个术语感到困惑 这主要是在谈论
  • 如何使 Flexbox 响应式?

    我有一个包含两个元素的 div 我想水平堆叠它们 Div C 具有固定宽度 div B 将填充其余空间 然而 div B 的内容可能是固定宽度 动态 或 100 宽度 div B 我想要的效果是 如果屏幕宽度足够小 以至于在 div B 和
  • 为什么在具体化中将 clpfd 变量分配给实际值?

    我正在开发一个 SWI Prolog 程序 该程序使用 CLP FD 约束来找到特定问题的解决方案 为此 我碰巧需要两个列表的 未定位 重叠 那是 List La长度为A List Lb长度为 B A gt B 未定位的重叠列表是La Lb
  • 我们有什么理由不使用 UIImageView 的子类吗?

    我目前正在尝试创建 UIImageView 的子类 以便使其从服务器异步下载图像 我尝试自己做 但还没有走得太远 D 不管怎样 我环顾四周 发现了这个 异步图像下载 http www markj net iphone asynchronou
  • 包名中的“dev”后缀?

    使用 apt get 时 我看到一些软件包的名称后面有一个 dev 后缀 libreadline5 libreadline dev zlib1g zlib1g dev 这些到底是什么 我应该安装它们吗 你需要这些编译并链接因为它们提供了要链
  • webkit translate3d 问题(peek-thru)

    我正在使用 PhoneGap 构建一个 iOS 应用程序 我使用translate3d CSS 动画来创建 翻转 效果 这对于更简单的元素非常有用 带有前 后 div 的 DIV 可能还有一个或两个额外的跨度 但是当我尝试翻转更大的元素 即