使用angular帮你实现拖拽的示例
程序员文章站
2022-11-26 14:56:51
拖拽有多种写法,在这里就看一看angular版的拖拽。
...
拖拽有多种写法,在这里就看一看angular版的拖拽。
<!doctype html> <html ng-app="myapp"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #box{ width: 100px; height: 100px; background: black; /*一定要给当前元素设置绝对定位*/ position: absolute; left: 0; top: 0; } </style> </head> <body> <div id="box" my-drag></div> </body> <script src="jquery-3.1.1.min.js" type="text/javascript" charset="utf-8"></script> <script src="../js/angular.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> // 自定义一个模块 var app = angular.module("myapp",[]); // 自定义指令 自定义指令时一定要使用驼峰命名法 app.directive('mydrag',function(){ // 返回一个函数 return{ link : function(scope,element,attr){ // scope可以接收到的数据 // element 当前的元素 // attr属性 // 拖拽的三大事件mousedown,mousemove,mouseup.使用jq绑定事件的方法进行绑定 element.on('mousedown',function(ev){ // 通过event获取到当前对象 var this = $(this); // 获取到鼠标离当前元素上边框的距离 var disx = ev.clientx - $(this).offset().left; // 获取到元素距离左边框的距离 // 因为在拖拽的过程中不变的是鼠标距离元素边框的距离 通过不变和已知求变量 var disy = ev.clienty - $(this).offset().top; $(document).on('mousemove',function(ev){ // 将所改变的值通过样式设置给当前元素 this.css({ left:ev.clientx - disx, top:ev.clienty - disy, }); }); $(document).on('mouseup',function(){ // 鼠标松开时关闭所有事件 $(document).off(); }) }) }, restrict:'a', //ecma e元素 c类名 m注释 a属性 }; }); </script> </html>
以上这篇使用angular帮你实现拖拽的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
JavaScript使用prototype原型实现的封装继承多态示例
-
JavaScript使用面向对象实现的拖拽功能详解
-
Java实现拖拽文件上传dropzone.js的简单使用示例代码
-
Vue 中使用vue2-highcharts实现top功能的示例
-
Angular PWA使用的Demo示例
-
Golang 使用接口实现泛型的方法示例
-
使用Flutter实现一个走马灯布局的示例代码
-
使用html2canvas.js实现页面截图并显示或上传的示例代码
-
使用mongoose和bcrypt实现用户密码加密的示例
-
Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除