AngularJS实现的简单拖拽功能示例


Posted in Javascript onJanuary 02, 2018

本文实例讲述了AngularJS实现的简单拖拽功能。分享给大家供大家参考,具体如下:

<!DOCTYPE html>
<html ng-app="myApp">
  <head>
    <meta charset="UTF-8">
    <title>3water.com AngularJS拖拽</title>
    <style>
    *{
      padding:0;
      margin:0;
    }
      .wei{
        width:100px;
        height:100px;
        background: red;
        position:absolute;
        cursor: pointer;
        /*left:0;top:0;*/
      }
    </style>
  </head>
  <body ng-controller="show">
      <div class="wei" wei-yi data="true"></div>
      <div class="wei" wei-yi data="false"></div>
    <script src="jquery.js" type="text/javascript" charset="utf-8"></script>
    <script src="angular.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
      var app = angular.module('myApp',[]);
      //自定义属性
      app.directive("weiYi",function(){
        return{
          restrict :'A',//A属性,E标签,C类名,D注释
          link :function(scope,element,attr){
            attr.data=angular.equals(attr.data,"true");
            //console.log(attr.data);
            console.log(element);
            element.on("mousedown",function(e){
              var that = $(this);
              console.log(attr.data);
              if(attr.data){
                $div=$("<div>");
                console.log($div);
                $div.css({"width":"100px","height":"100px","border": "2px dotted green","position":"absolute","left":that.offset().left,"top":that.offset().top});
                $div.appendTo($("body"));
              }
              var x=e.clientX-$(this).offset().left;
              var y=e.clientY-$(this).offset().top;
              //console.log(x+":"+y);
              $(document).on("mousemove",function(e){
                if(attr.data){
                  $div.css({"left":e.clientX-x,"top":e.clientY-y});
                }else{
                  that.css({"left":e.clientX-x,"top":e.clientY-y});
                }
              });
              $(document).on("mouseup",function(e){
                //console.log($div);
                $(document).off();
                if(attr.data){
                  that.css({"left":$div.offset().left,"top":$div.offset().top});
                  $div.remove();
                }
              })
            })
          }
        }
      });
      app.controller('show',['$scope',function(scope$){
      }]);
    </script>
  </body>
</html>

运行效果如下:

AngularJS实现的简单拖拽功能示例

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
gridview生成时如何去掉style属性中的border-collapse
Sep 30 Javascript
js小数运算出现多位小数如何解决
Oct 08 Javascript
原生js实现图片层叠轮播切换效果
Feb 02 Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 Javascript
详解Node.js如何开发命令行工具
Aug 14 Javascript
Es6 写的文件import 起来解决方案详解
Dec 13 Javascript
JavaScript截屏功能的实现代码
Jul 28 Javascript
Angular2学习笔记之数据绑定的示例代码
Jan 03 Javascript
js实现动态改变radio状态的方法
Feb 28 Javascript
webpack4.x开发环境配置详解
Aug 04 Javascript
vue项目查看vue版本及cli版本的实现方式
Oct 24 Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 #Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 #jQuery
Node实战之不同环境下配置文件使用教程
Jan 02 #Javascript
jQuery动态添加元素无法触发绑定事件的解决方法分析
Jan 02 #jQuery
Node解决简单重复问题系列之Excel内容的获取
Jan 02 #Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 #Javascript
React教程之封装一个Portal可复用组件的方法
Jan 02 #Javascript
You might like
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
PHP 手机归属地查询 api
2010/02/08 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
IE无法设置短域名下Cookie
2010/09/23 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
vue webpack打包优化操作技巧
2018/02/22 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
使用Python对MySQL数据操作
2017/04/06 Python
Flask 让jsonify返回的json串支持中文显示的方法
2018/03/26 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
2019/06/12 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
比较基础的php面试题及答案-填空题
2014/04/26 面试题
作为网站管理者应当如何防范XSS
2014/08/16 面试题
建筑施工员岗位职责
2013/11/26 职场文书
师生聚会感言
2014/01/26 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
公共场所标语
2014/06/30 职场文书
大学辅导员述职报告
2015/01/10 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
离职告别感言
2015/08/04 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript