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 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
js实现弹窗插件功能实例代码分享
Dec 12 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
JavaScript实现的经典文件树菜单效果
Sep 08 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
JavaScript实现Fly Bird小游戏
Dec 15 Javascript
JavaScript实现星级评分
Jan 12 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
Apr 26 jQuery
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
vue webpack重写cookie路径的方法
Jul 10 Javascript
浅谈vue异步数据影响页面渲染
Oct 29 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
Search Engine Friendly的URL设计
2006/10/09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vue组件之Alert的实现代码
2017/10/17 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
2018/03/01 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
Django的信号机制详解
2017/05/05 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
基于python3生成标签云代码解析
2020/02/18 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
用python对oracle进行简单性能测试
2020/12/05 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
应聘自荐书
2013/10/08 职场文书
酒店管理专业毕业生求职自荐信
2014/04/28 职场文书
护士医德医风心得体会
2016/01/25 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
spring boot中nativeQuery的用法
2021/07/26 Java/Android
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技