触摸移动触发时css过渡不一致

Posted

技术标签:

【中文标题】触摸移动触发时css过渡不一致【英文标题】:css transition inconsistent when triggered on touch move 【发布时间】:2013-10-10 02:39:08 【问题描述】:

当用户滚动到某个点以下时,我正在触发 css 位置更改(带有 css 过渡动画)。这在 pc 上的 chrome/safari 上运行良好,但在 iphone 上不一致。它有时会跳跃而不是动画,有时它什么也不做,偶尔会动画。

我尝试过使用 jQuery animate,添加 translate3d 并将元素放在自己的层上,所有这些都产生了相同的结果。

代码如下:

    var logoUp = false;
    $(window)[0].addEventListener('touchmove', function(e) 
      console.log($(window).scrollTop());
      if ($(window).scrollTop() > 33) 
         if(!logoUp)
           $('.trig_logo').css( 'top': '-90px' )
           logoUp = true;
         


       else 
           if(logoUp)
           $('.trig_logo').css( 'top': '0px' )
           logoUp = false;
         
      
    )

CSS

.trig_logo 
    background:url(/img/head_foot/logo.png)  center 0px no-repeat;
    height:400px;
    position: absolute;
    width:100%;
    top:0px;
    -webkit-transition: 0.25s top;

【问题讨论】:

【参考方案1】:

我很惊讶-webkit-transition 完全可以在 iPhone 上工作。

通常您会看到如下内容:

-webkit-transition: .25s top;
-moz-transition: .25s top;
-o-transition: .25s top;
transition: .25s top; /* <-- actual standard */

供应商前缀很神奇吧? (不是

【讨论】:

我们在 iPhone 上使用 safari,在其他元素上使用 -webkit-transition,它们的动画效果很好。

以上是关于触摸移动触发时css过渡不一致的主要内容,如果未能解决你的问题,请参考以下文章

SIGABRT 每次触摸点击,不一致的 iPad iOS

移动端300ms的点击延迟以及解决方案

Mac 电脑鼠标和触摸板滚动方向不一致的问题已解决

Firebase onauthstatechanged 在页面加载时触发不一致

响应式断点触发的 CSS 过渡

响应式视口字体在移动/ios 设备上不一致