javascript - 无法使 jquery.transit 正常工作

标签 javascript jquery css transition hammer.js

我试图结合 Hammer.js 和 jquery.transit 在侧边菜单上创建一个不错的拖动效果,但是,我无法使 jquery.transit 工作(是的,这听起来很愚蠢...... ).

这是我的

var $mainPage = $('#main-page');
  var drawer = 0;
  if(Modernizr.touch){
    $mainPage.hammer()
              .on('swiperight', function(e){
                if(drawer){
                  return true;
                }
                $mainPage.transition({ x: 260 });
                drawer = 1;
              })
              .on('swipeleft', function(e){
                if(!drawer){
                  return true;
                }
                $mainPage.transition({ x: 0 });
                drawer = 0;
              });

但是,我一直收到 Object [object Object] has no method 'transition'...知道为什么吗?

最佳答案

请查看以下示例并注意传递给 hammer.jsprevent_default: true 选项,以便在设备上顺利运行。关于您的错误,我猜您没有使用 hammer.js 的 jquery 插件,因为它在下面的示例中运行良好。

http://jsbin.com/ExECiHUS/1/edit

html

<!DOCTYPE html>
<html>
<head>
  <meta charset=utf-8 />
  <meta name="viewport" content="width=device-width, initial-scale=1">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  
  <script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js"></script>
  
  <script src="http://ricostacruz.com/jquery.transit/jquery.transit.min.js"></script>
  
  <script src="//cdnjs.cloudflare.com/ajax/libs/hammer.js/1.0.6/jquery.hammer.js"></script>

<title>JS Bin</title>
</head>
<body>
  
  <div id="main-page" style="background-color:grey;height:100px;">this is main page</div>
  
</body>
</html>

js

var $mainPage = $('#main-page');
  var drawer = 0;
  //if(Modernizr.touch){
    console.log($mainPage);
$mainPage.hammer({prevent_default: true})
              .on('swiperight', function(e){
                console.log('swipe right');
                if(drawer){
                  return true;
                }
                                            console.log('transition');
                $mainPage.transition({ x: 260 });
                drawer = 1;
              })
              .on('swipeleft', function(e){
                console.log('swipe left');
                if(!drawer){
                  return true;
                }
                $mainPage.transition({ x: 0 });
                drawer = 0;
              });
  //}else{
    //console.log('touch events not supported!');
  //}

关于javascript - 无法使 jquery.transit 正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21109090/

相关文章:

javascript - 如何在加载后在中心或特定高度启动页面

javascript - 如何从键代码中获取字符串/字符值;

javascript - 通过数组检查输入框中不需要的字符?

javascript - 浏览器后退/窗口关闭触发的消息窗口

javascript - 如何循环选中的框并添加到数组

javascript - jQuery 未定义的属性

html - 在两个图像之间创建空间

javascript - 让所有功能异步的任何缺点?

javascript - 我想为每个滚动CSS更改文本

javascript - 停止 JavaScript 在页面刷新之间记住变量? (它不应该这样做)