Page 373 - AngularJS权威教程
P. 373

26.2  交互    353


                    cancel                                                                          19
                  cancel事件会调用touchcancel事件或者在start事件之后开始滚动时触发。

                  例如,我们可以创建一个指令,在可以控制投影仪的屏幕上的幻灯片之间滑动。为了在手机                                           20
              设备上处理滑动操作,可以使用$swipe服务来处理如何显示UI层的自定义逻辑。
                  angular.module('myApp')                                                            21
                      .directive('mySlideController', ['$swipe', function($swipe) {
                          return {
                              restrict: 'EA',                                                        22
                              link: function(scope,ele,attrs,ctrl) {
                                  var startX, pointX;
                                  $swipe.bind(ele, {
                                      'start': function(coords) {                                    23
                                              startX = coords.x;
                                              pointX = coords.y;
                                      },                                                             24
                                      'move': function(coords) {
                                              var delta = coords.x - pointX;
                                              // ...                                                 25
                                      },
                                      'end': function(coords) {
                                              // ...
                                      },                                                             26
                                      'cancel': function(coords) {
                                              // ...
                                      }                                                              27
                                  });
                              }
                          }
                      }]);                                                                           28


              26.2.4  angular-gestures和多点触控手势                                                        29

                  angular-gestures是一个Angular模块,它让我们可以处理Angular应用中的多点触控行为。
                                                     ①
              它基于非常流行并经过良好测试的Hammer.js 库。                                                            30
                  Hammer.js库提供了一系列常见的触屏事件:
                                                                                                     31
                   Tap;
                   DoubleTap;
                   Swipe;                                                                           32
                   Drag;
                   Pinch;                                                                           33
                   Rotate。

                  angular-gestures允许我们在使用Angular指令时使用这些事件。例如,以下所有指令都是                                34
              可用的:
                   hmDoubleTap: 'doubletap';                                                        35
                   hmDragStart: 'dragstart';
              ——————————                                                                             36
                 ① http://eightmedia.github.io/hammer.js/
   368   369   370   371   372   373   374   375   376   377   378