angularjs结合html5实现拖拽功能


Posted in Javascript onJune 25, 2018

先来 看看具体效果:

angularjs结合html5实现拖拽功能

实现方法:

1.下载并引入 angularjs

2.HTML代码:

<!DOCTYPE html>
<html lang="en" ng-app="test">
<head>
  <meta charset="UTF-8">
  <title>Html5 拖拽行为和AngularJs的结合</title>
  <meta charset="utf-8"/>
  <script type="text/javascript" src="js/angular.js"></script>
  <style>
    .to-drag, .drag-stop {
      display: inline-block;
    }
  </style>
</head>
<body ng-controller="main">
<div class="to-drag">
  <ul>
    <li ng-repeat="item in list.data" ng-include="'./lefttree.html'"></li>
  </ul>
</div>
<div class="drag-stop">
  <ul>
    <li ng-repeat="item in rightList.data" ng-include="'./righttree.html'"></li>
  </ul>
</div>
</body>
</html>

3.js

<script type="text/javascript">
  let mod = angular.module("test", []);
  mod.controller("main", ['$scope', function ($scope) {
    $scope.list = {
      data: [{
        id: 1,
        name: '22',
        child: [{
          id: '1-1',
          name: '1-1_name-左'
        }, {
          id: '1-2',
          name: '1-2_name-左'
        }]
      }],
      dragstart: function (item) {
        $scope.clientInfo = item;
      }
    }
    $scope.rightList = {
      data: [{
        id: 1,
        name: '停止拖动',
        child: [{
          id: '1-1',
          name: '1-1_name-右'
        }, {
          id: '1-2',
          name: '1-2_name-右'
        }]
      }],
      drop: function (event, item) {
        event.preventDefault();
        console.log("被拖动的元素:->", $scope.clientInfo);
        console.log("当前节点:->", item);
        //调用后端添加接口,实现真实的添加。
      },
      dragover: function (event) {
        event.preventDefault();
      }
    }
  }]);
  var convertFirstUpperCase = function (str) {
    return str.replace(/(\w)/, function (s) {
      return s.toUpperCase();
    });
  };
  rubyDragEventDirectives = {};
  angular.forEach("dragstart drag dragenter dragover drop dragleave dragend".split(' '), function (eventName) {
    var rubyEventName = 'ruby' + convertFirstUpperCase(eventName);
    rubyDragEventDirectives[rubyEventName] = ['$parse', function ($parse) {
      //$parse 语句解析器
      return {
        restrict: 'A',
        compile: function (ele, attr) {
          var fn = $parse(attr[rubyEventName]);
          return function rubyEventHandler(scope, ele) {
            ele[0].addEventListener(eventName, function (event) {
              if (eventName == 'dragover' || eventName == 'drop') {
                event.preventDefault();
              }
              var callback = function () {
                fn(scope, {event: event});
              };
              callback();
            });
          }
        }
      }
    }]
  });
  mod.directive(rubyDragEventDirectives);
</script>

希望可以对大家有所帮助哦。好久都没写博客啦,嘻嘻最近变懒了,而且特别懒,哈哈哈哈,天热啦,大家多喝水哦,注意防暑。

Javascript 相关文章推荐
jquery ajax 检测用户注册时用户名是否存在
Nov 03 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
Jan 08 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 Javascript
jQuery中的siblings用法实例分析
Dec 24 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 Javascript
QML实现圆环颜色选择器
Sep 25 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
JavaScript类的继承多种实现方法
May 30 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 Javascript
js 执行上下文和作用域的相关总结
Feb 08 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 #Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 #Javascript
JS的函数调用栈stack size的计算方法
Jun 24 #Javascript
JavaScript中var、let、const区别浅析
Jun 24 #Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 #Javascript
Vue中$refs的用法详解
Jun 24 #Javascript
JS实现获取word文档内容并输出显示到html页面示例
Jun 23 #Javascript
You might like
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
php中mysql操作buffer用法详解
2015/03/19 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
2020/02/07 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
python中set常用操作汇总
2016/06/30 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
详解Python中的分支和循环结构
2020/02/11 Python
python中68个内置函数的总结与介绍
2020/02/24 Python
Surfdome西班牙:世界上最受欢迎的生活方式品牌
2019/02/13 全球购物
Java的基础面试题附答案
2016/01/10 面试题
医药大学生求职简历的自我评价
2013/10/17 职场文书
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
大学生个人简历中的自我评价
2013/12/27 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
好的促销活动方案
2014/08/21 职场文书
2015年导购员工作总结
2015/04/25 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
安全第一课观后感
2015/06/18 职场文书
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技