首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ng-sortable禁用页面滚动

使用ng-sortable禁用页面滚动
EN

Stack Overflow用户
提问于 2014-11-12 22:44:20
回答 2查看 1.5K关注 0票数 3

我用AngularJS和angular库ng-sortable创建了一个可排序列表。我遇到的问题是,在移动设备上,这种行为是不一致的。当列表在android (chrome)上被触摸和移动(这是所需的行为)时,页面不会滚动,但在ipad (chrome)上会滚动。

我已经用jsFiddle创建了一个简单的示例,其中包含一个基本示例

JAVASCRIPT:

代码语言:javascript
复制
var myApp = angular.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:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
.display-item {
    clear: both;    
}

.handle {
    border: 1px solid #e5e5e5;
    padding: 10px;
    margin: 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;
}
EN

回答 2

Stack Overflow用户

发布于 2016-04-13 17:12:12

在ng-sortable站点right here上也记录了同样的问题

还有一个longTouch /longTouchActive(旧版本<= 1.3.2)选项,您可以将其设置为true;设置为true将导致在长时间触摸时激活拖放功能,即触摸设备上的按住功能。

让我知道这是否对ipad,android chrome等有帮助。

票数 0
EN

Stack Overflow用户

发布于 2016-04-13 17:26:19

用户更好的ngTable排序表格,是更容易我认为和我测试它和工作正常,你可以按照这个完整的例子:Example

这是代码的一部分,在其中添加表的排序

代码语言:javascript
复制
function demoController(NgTableParams, simpleList) {
this.tableParams = new NgTableParams({
  // initial sort order
  sorting: { name: "asc" } 
}, {
  dataset: simpleList
});

}

但不要使用simpleList,只需按照不带它的示例操作,并将您的数据放入simpleList,之后,只需复制html,看看它是如何工作的,并添加您的自定义属性,我希望我已经帮助了您,如果您有更多的问题,您可以回复此评论:P

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26889663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档