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 事件源码定位问题
Jun 18 Javascript
jQuery中last()方法用法实例
Jan 06 Javascript
jQuery中$.click()无效问题分析
Jan 29 Javascript
使用jQuery实现购物车结算功能
Aug 15 jQuery
基于DOM节点删除之empty和remove的区别(详解)
Sep 11 Javascript
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 jQuery
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 Javascript
vue从零实现一个消息通知组件的方法详解
Mar 16 Javascript
JS实现联想、自动补齐国家或地区名称的功能
Jul 07 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
Aug 18 Javascript
详解vue v-model
Aug 31 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的字符串用法小结
2010/06/08 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
javascript引用对象的方法
2007/01/11 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python使用tkinter库实现文本显示用户输入功能示例
2018/05/30 Python
解决pyecharts在jupyter notebook中使用报错问题
2020/04/23 Python
python实现图片压缩代码实例
2019/08/12 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
生日寄语大全
2014/04/08 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
预备党员表决心的话
2015/09/22 职场文书
导游词之天津古文化街
2019/11/09 职场文书
一文搞懂php的垃圾回收机制
2021/06/18 PHP
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle