记一次CSS弹出动画的Bug

在开发jQuery WeUI的picker组件时,使用CSS动画实现弹出效果。在iOS版微信中,发现弹出动画无法正常显示。问题源于iOS浏览器优化了DOM操作顺序,将创建DOM和添加动画类合并,导致动画缺失。解决方法是在添加动画类前读取一次CSS属性,强制浏览器完成DOM插入。此问题反映出iOS更倾向于DOM操作合并以提高性能。
摘要由CSDN通过智能技术生成

在写 jQuery WeUI 的一个picker的弹出动画的时候,我是通过CSS动画实现的。

CSS代码如下:

.weui-picker-modal {
  width: 100%;
  position: absolute;
  z-index: 100;
  bottom: 0;
  text-align: center;
  border-radius: 0;
  opacity: 0.6;

  color: @color-text;
  transition-duration: .3s;
  height: 13rem;
  background: #EFEFF4;

  transform: translate3d(0, 100%, 0);
  transition-property: transform, opacity;

  &.weui-picker-modal-visible {
    opacity: 1;
    transform: translate3d(0,0,0);
  }
}

JS代码如下:

$.openPicker = function(tpl) {

    var container = $("<div class='weui-picker-container'></div>").appendTo(document.body);
    container.show();

    container.addClass("weui-picker-container-visible");

    //关于布局的问题,如果直接放在body上,则做动画的时候会撑开body高度而导致滚动条变化。
    var dialog = $(tpl).appendTo(container)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值