• 遇到的一个移动端从下往上过渡的弹框,在Android下过渡动画的优化问题。


    优化之前:

     1 /* 分享弹框样式 */
     2 .popUpDiv {
     3      100vw;
     4     height: 100vh;
     5     transition: all 0.5s ease;
     6     position: fixed;
     7     left: 0;
     8     transform: translate3d(0, 0, 0);
     9     background: url('../images/boxshare.png') no-repeat center center;
    10     background-size: 100% 100%;
    11     -webkit-backface-visibility:hidden;
    12     -moz-backface-visibility:hidden;
    13     -ms-backface-visibility:hidden;
    14     backface-visibility:hidden;
    15     -webkit-perspective:1000;
    16     -moz-perspective:1000;
    17     -ms-perspective:1000;
    18     perspective:1000;
    19     z-index: 10;
    20   }
    21   .popUpDiv1 {
    22     bottom: -100vh;
    23   }
    24   .popUpDiv2 {
    25     bottom: 0;
    26   }
    1 <div @click="sharePopUp" class="popUpDiv" :class="{ popUpDiv2 :isShare, popUpDiv1 :!isShare}"></div>

    原来打算动态控制bottom属性的值,来通过transition过渡来实现弹框从页面底部弹出。

    这样在PC端是没什么问题的。在IOS上动效也是很流畅。 但是到了Android系统就崩了,过渡动画过程中会有抖动,字体模糊现象!!!

    那么如何解决这个问题呢?

    在移动端通过控制top,right,bottom,left的值,来实现过渡是存在这个问题的,并且并不建议transition属性值写为all

    可以通过transition: transform 0.5s ease;  设置tansform的过渡效果来实现需求。再通过控制transform: translateY(100vh); 来实现dom元素的移动。

    优化之后:

     1 .popUpDiv {
     2      100vw;
     3     height: 100vh;
     4     transition: transform 0.5s ease;
     5     position: fixed;
     6     left: 0;
     7     top: 0;
     8     margin-bottom: -100vh;
     9     transform: translate3d(0, 0, 0);
    10     background: url('../images/boxshare.png') no-repeat center center;
    11     background-size: 100% 100%;
    12     -webkit-backface-visibility:hidden;
    13     -moz-backface-visibility:hidden;
    14     -ms-backface-visibility:hidden;
    15     backface-visibility:hidden;
    16     -webkit-perspective:1000;
    17     -moz-perspective:1000;
    18     -ms-perspective:1000;
    19     perspective:1000;
    20     z-index: 10;
    21   }
    22   .popUpDiv1 {
    23     transform: translateY(100vh);
    24   }
    25   .popUpDiv2 {
    26     transform: translateY(0);
    27   }

    这样在Android就变的很流畅了!!!

  • 相关阅读:
    uniapp 教程(未完)
    vue3 迁移指南
    promise 简单封装 ajax 解决回调地狱
    知识图谱内容综述(一)
    运营活动服务端研发总结
    Flurl 组件使用
    个性化电商系统开发之订单物流分拆思路
    快付生态系统积分交易核心源码段
    java使用cxf写的webservices,PB进行调用
    mac系统命令
  • 原文地址:https://www.cnblogs.com/lml2017/p/9968320.html
Copyright © 2020-2023  润新知