javascript - CSS3 过渡不适用于移动设备

标签 javascript jquery html css mobile

我有一个简单的 div 设置,当你向上滑动屏幕时它会向上过渡,它在我的桌面上工作正常,但我无法在我的手机上工作(也在 Android 模拟器上试过) .

我一开始以为是滑动的问题(使用 TouchSwipe),但后来我用一个按钮测试了它,但转换仍然不起作用。为了提供一些背景知识,它是一个 Angular 应用程序,这是 Angular 模板的一部分。我认为这之间没有任何冲突......

有什么想法吗?

HTML:

<div id="fullpage" class="swipe-container">
    <div class="section">

        <button id="btnOpen" class="btn btn-primary">Open</button>

        <div class="swipeMenu">
            Text
        </div>

    </div>
</div>

CSS:

.swipeMenu {
    height: 45vh;
    width: 90vw;
    background-color: #fff;
    position: absolute;
    bottom: -45vh;
    left: 0;
    right: 0;
    margin: 0 auto;
}

JS:

    $(function() {

        $("#btnOpen").click(function() {
        $('.swipeMenu').css("-webkit-transition", "-webkit-transform 0.3s ease");
      $('.swipeMenu').css("-moz-transition", "-moz-transform 0.3s ease");
      $('.swipeMenu').css("-o-transition", "-o-transform 0.3s ease");
      $('.swipeMenu').css("transition", "transform 0.3s ease");
      $('.swipeMenu').css("transform", "translateY(-40vh)");
        });

    //Enable swiping...
    $(".swipe-container").swipe( {
      //Generic swipe handler for all directions
      swipeUp:function(event, direction, distance, duration, fingerCount) {
        $('.swipeMenu').css("-webkit-transition", "-webkit-transform 0.3s ease");
        $('.swipeMenu').css("-moz-transition", "-moz-transform 0.3s ease");
        $('.swipeMenu').css("-o-transition", "-o-transform 0.3s ease");
        $('.swipeMenu').css("transition", "transform 0.3s ease");
        $('.swipeMenu').css("transform", "translateY(-40vh)");
      },
      swipeDown:function(event, direction, distance, duration, fingerCount) {
        $('.swipeMenu').css("-webkit-transition", "-webkit-transform 0.3s ease-in");
        $('.swipeMenu').css("-moz-transition", "-moz-transform 0.3s ease-in");
        $('.swipeMenu').css("-o-transition", "-o-transform 0.3s ease-in");
        $('.swipeMenu').css("transition", "transform 0.3s ease-in");
        $('.swipeMenu').css("transform", "translateY(40vh)");
      },
      //Default is 75px, set to 0 for demo so any distance triggers swipe
      threshold: 80
    });
  }); 

最佳答案

将所有这些 Javascript CSS 更改放入一个 CSS 类中,然后改用 jQuery addClass 可能是一个更好的主意,特别是因为这些 CSS 值在您的代码中重复了多次。

尽管如此,您还想为 transform 属性添加 vendor 前缀,特别是 -webkit。这可能就是动画无法在 Android 上运行的原因。

关于javascript - CSS3 过渡不适用于移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752547/

相关文章:

javascript - onchange 的日期格式

javascript - 如何存储点击的超链接的URL

JavaScript 函数无法正常工作

javascript - PHP 和 Ajax : Illegal invocation

jquery - 为什么 jQuery 坚持我的纯文本不是 "well-formed"?

html - 无法点击链接

javascript - 在 WebRTC 中识别提供 SDP 以获得答案

javascript - 局部(函数)变量在 JavaScript 中存在多久

javascript - 在网页中搜索数千个关键字的最快方法

javascript - 如何通过jquery从tr中获取第一个td文本