基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能


Posted in Javascript onApril 02, 2019

ngDraggable.js是一款比较简单实用的angularJS拖拽插件,借助于封装好的一些自定义指令,能够快速的进行一些拖拽应用开发。首先先介绍一些基本的概念;

•ng-drop:是否允许放入拖拽元素

•ng-drop-success($data, $event):拖拽元素放入的回调;$data:放入元素数据;$event拖拽事件对象

•ng-drag:元素是否允许拖拽

•ng-drag-success($data, $event):$data:拖拽元素数据,$event拖拽元素事件对象

•ng-drag-data:拖拽数据

官方链接:https://github.com/fatlinesofcode/ngDraggable

在拖拽进行元素排序时,只需动态更改下循环数组元素顺序;具体事件绑定drop绑定在父元素,drag绑定在子元素即可,具体实现代码如下:

效果图如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <style>
    .drag-container {
      display: flex;
      justify-content: flex-start;
      align-items: center;
    }
    .drag-container .drag-box {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 200px;
      height: 200px;
      margin: 20px;
      color: #fff;
      font-size: 20px;
      font-weight: bold;
    }
    .drag-container .drag-box .drag-item {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 150px;
      height: 150px;
    }
  </style>
  <title>ng-dragger</title>
</head>
<body ng-app="app" ng-controller="draggerController">
  <div class="drag-container">
    <div ng-repeat="item in dragArr" class="drag-box" ng-drop="true" ng-drop-success="onDropComplete($index, $data, $event)">
      <div class="drag-item" ng-drag="true" ng-drag-data="{{item}}" ng-style="{background: item.color}">{{item.text}}</div>
    </div>
  </div>
  <script src="https://cdn.bootcss.com/angular.js/1.3.1/angular.js"></script>
  <script src="https://cdn.bootcss.com/ngDraggable/0.1.11/ngDraggable.js"></script>
  <script>
    var myApp = angular.module('app', ['ngDraggable']);
    myApp.controller('draggerController', function($scope) {
      $scope.dragArr = [{
        text: '方块1',
        color: 'green',
        key: 'arr1'
      }, {
        text: '方块2',
        color: 'blue',
        key: 'arr1'
      }, {
        text: '方块3',
        color: '#888',
        key: 'arr1'
      }, {
        text: '方块4',
        color: '#888',
        key: 'arr2'
      }, {
        text: '方块5',
        color: '#888',
        key: 'arr2'
      }, {
        text: '方块6',
        color: '#888',
        key: 'arr2'
      }];
      $scope.onDropComplete = function(index, obj, $event) {
        var otherObj = $scope.dragArr[index];
        var otherIndex = $scope.dragArr.findIndex(vv => Object.is(vv.text, obj.text));
        if (otherObj.key !== obj.key) return;
        $scope.dragArr[index] = obj;
        $scope.dragArr[otherIndex] = otherObj;
      }
    })
  </script>
</body>
</html>

基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能

总结

以上所述是小编给大家介绍的基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
动态调用css文件——jquery的应用
Feb 20 Javascript
JavaScript获取GridView选择的行内容
Apr 14 Javascript
jquery 常用操作方法
Jan 28 Javascript
javascript中window.event事件用法详解
Dec 11 Javascript
7个JS基础知识总结
Mar 05 Javascript
JQuery查找DOM节点的方法
Jun 11 Javascript
javascript实现的网站访问量统计代码
Dec 20 Javascript
微信小程序之绑定点击事件实例详解
Jul 07 Javascript
详解 vue better-scroll滚动插件排坑
Feb 08 Javascript
微信小程序拍照和摄像功能实现方法示例
Feb 01 Javascript
如何实现小程序与小程序之间的跳转
Nov 04 Javascript
JavaScript实现前端网页版倒计时
Mar 24 Javascript
详解vue后台系统登录态管理
Apr 02 #Javascript
微信小程序实现人脸识别登陆的示例代码
Apr 02 #Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 #Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 #Javascript
基于Vue插入视频的2种方法小结
Apr 02 #Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 #Javascript
小程序实现自定义导航栏适配完美版
Apr 02 #Javascript
You might like
PHP与javascript对多项选择的处理
2006/10/09 PHP
PHP 七大优势分析
2009/06/23 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
jQuery之$(document).ready()使用介绍
2012/04/05 Javascript
jQuery Trim去除字符串首尾空字符的实现方法说明
2014/02/11 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法
2019/09/24 Javascript
javascript如何实现create方法
2019/11/04 Javascript
javascript实现留言板功能
2020/02/08 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
Python在不同目录下导入模块的实现方法
2017/10/27 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
2019/10/12 Python
python用requests实现http请求代码实例
2019/10/31 Python
python中Django文件上传方法详解
2020/08/05 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
大学四年规划书范文
2013/12/27 职场文书
求职意向书范文
2014/04/01 职场文书
2014年内勤工作总结
2014/11/24 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python