基于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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
JavaScript中yield实用简洁实现方式
Jun 12 Javascript
JavaScript将数据转换成整数的方法
Jan 04 Javascript
jquery批量设置属性readonly和disabled的方法
Jan 24 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
Js实现自定义右键行为
Mar 26 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
JavaScript实现窗口抖动效果
Oct 19 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
详解webpack 入门与解析
Apr 09 Javascript
javascript实现摄像头拍照预览
Sep 30 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调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php检查页面是否被百度收录
2015/10/28 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
jQuery Validation PlugIn的使用方法详解
2015/12/18 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
JavaScript位移运算符(无符号) &gt;&gt;&gt; 三个大于号 的使用方法详解
2016/03/31 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
js+cavans实现图片滑块验证
2020/09/29 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
解决c++调用python中文乱码问题
2020/07/29 Python
python 贪心算法的实现
2020/09/18 Python
Python模块常用四种安装方式
2020/10/20 Python
Python中openpyxl实现vlookup函数的实例
2020/10/28 Python
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
十佳美德少年事迹材料
2014/02/05 职场文书
表彰大会新闻稿
2015/07/17 职场文书
八年级作文之友谊
2019/12/02 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL