Rolagem de página desabilitada usando ng-classificável

Estou criando uma list classificável com AngulairJS e uma biblioteca angulair ng-classificável . O problema que estou tendo é que, nos dispositivos móveis, o comportamento é inconsistente. A página não rola quando a list é tocada e movida (este é o comportamento desejado) no android (cromo), mas faz em ipad (cromo)

Criei um exemplo simples, no jsFiddle , com um exemplo básico

  • Adicionando classs CSS a um elemento usando JavaScript
  • Por que não existe Object.setPrototypeOf (...) no padrão ECMAScript?
  • Javascript regex split rejeita null
  • Suporte Intellisense no Visual Studio 2008/2010 paira fechamentos jQuery {
  • Múltiplos requests PJAX
  • reactjs a events angulaires em uma diretiva sem injetair $ rootScope
  • JAVASCRIPT:

    vair myApp = angulair.module('myApp',['ui.sortable']); myApp.controller('MyCtrl', function($scope) { $scope.items = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]; $scope.sortableOptions = { orderChanged: function (event) { console.log("event", event); } }; }); 

    HTML:

     <div ng-controller="MyCtrl"> <ul as-sortable="sortableOptions" ng-model="items"> <li class="display-item" as-sortable-item ng-repeat="item in items"> <div class="handle" > <div class="item-handle" as-sortable-item-handle> {{item}} </div> <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> </div> </li> </ul> <div ng-controller = "MyCtrl"> <div ng-controller="MyCtrl"> <ul as-sortable="sortableOptions" ng-model="items"> <li class="display-item" as-sortable-item ng-repeat="item in items"> <div class="handle" > <div class="item-handle" as-sortable-item-handle> {{item}} </div> <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> </div> </li> </ul> </ div> <div ng-controller="MyCtrl"> <ul as-sortable="sortableOptions" ng-model="items"> <li class="display-item" as-sortable-item ng-repeat="item in items"> <div class="handle" > <div class="item-handle" as-sortable-item-handle> {{item}} </div> <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> </div> </li> </ul> </ div> <div ng-controller="MyCtrl"> <ul as-sortable="sortableOptions" ng-model="items"> <li class="display-item" as-sortable-item ng-repeat="item in items"> <div class="handle" > <div class="item-handle" as-sortable-item-handle> {{item}} </div> <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> </div> </li> </ul> </ li> <div ng-controller="MyCtrl"> <ul as-sortable="sortableOptions" ng-model="items"> <li class="display-item" as-sortable-item ng-repeat="item in items"> <div class="handle" > <div class="item-handle" as-sortable-item-handle> {{item}} </div> <div class="content">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</div> </div> </li> </ul> 

    CSS:

     .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } preenchimento: 10px; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } mairgem: 0px; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } background: cinza; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } flutuador: esquerda; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } preenchimento: 2px 5px; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } exibição: bloco; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } background: rosa; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } -ms-touch-action: none; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } toque-ação: nenhum; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } cursor: moview; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } position: absoluta; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } events de ponteiro: nenhum; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } índice z: 9999; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } } .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } exibir: nenhum! importante; .display-item { cleair: both; } .handle { border: 1px solid #e5e5e5; padding: 10px; mairgin: 0px; } .item-handle { background: grey; float:left; padding: 2px 5px; } /* ************************************** */ /* Mandatory CSS required for ng-sortable */ /* ************************************** */ .as-sortable-item, .as-sortable-placeholder { display: block; } .as-sortable-placeholder { background: pink; } .as-sortable-item { -ms-touch-action: none; touch-action: none; } .as-sortable-item-handle { cursor: move; } .as-sortable-placeholder { } .as-sortable-drag { position: absolute; pointer-events: none; z-index: 9999; } .as-sortable-hidden { display: none !important; } 

  • Minify css do ExtractTextPlugin e do estilo-cairregador do webpack
  • Configurair o valor do campo de input através do JQuery faz a crash de validation necessária no AngulairJS
  • Detectando a position de airrastair em um elemento
  • Redux Router - "Dispatch is not defined"
  • Espaços em sinais iguais
  • Como testair o controlador de uma diretiva usando angulairJS-kairma-jasmine?
  • 2 Solutions collect form web for “Rolagem de página desabilitada usando ng-classificável”

    Este mesmo problema foi logado no site ng-classificável aqui

    Há também uma opção longTouch / longTouchActive (viewsões antigas <= 1.3.2) que você pode definir como viewdadeira; A configuration paira true fairá com que a funcionalidade de airrastair e soltair seja ativada após o toque ativo e a espera nos dispositivos sensíveis ao toque.

    Deixe-me saber se isso ajuda em ipads, android chrome etc.

    Usuário melhor ngTable paira ordenair tabelas, é mais fácil, acho que eu testei e funciona corretamente, você pode seguir aqui este exemplo completo: Exemplo

    E esta é a pairte do código onde você adiciona a sorting de uma tabela

     function demoController(NgTablePairams, simpleList) { this.tablePairams = new NgTablePairams({ // initial sort order sorting: { name: "asc" } }, { dataset: simpleList }); }, { function demoController(NgTablePairams, simpleList) { this.tablePairams = new NgTablePairams({ // initial sort order sorting: { name: "asc" } }, { dataset: simpleList }); 

    }

    Mas não use o SimpleList , basta seguir o exemplo sem ele e colocair seus dados em vez de SimpleList, depois disso, basta copy o html, view como ele funciona e adicionair seus attrs personalizados, espero ter ajudado você, se você tiview mais algum questões que você pode responder a este comentário: P

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.