この記事では、AngularJS で実装された単純なドラッグ アンド ドロップ機能を主に紹介し、AngularJS のイベント応答とページ要素属性の動的操作に関する実装テクニックを紹介します。必要な方は参考にしてください。
この記事の例では、簡単なドラッグ アンド ドロップについて説明します。 AngularJS によって実装されたドロップ関数。参考のために皆さんと共有してください。詳細は次のとおりです:
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="UTF-8"> <title>www.jb51.net 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"> <p class="wei" wei-yi data="true"></p> <p class="wei" wei-yi data="false"></p> <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){ $p=$("<p>"); console.log($p); $p.css({"width":"100px","height":"100px","border": "2px dotted green","position":"absolute","left":that.offset().left,"top":that.offset().top}); $p.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){ $p.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($p); $(document).off(); if(attr.data){ that.css({"left":$p.offset().left,"top":$p.offset().top}); $p.remove(); } }) }) } } }); app.controller('show',['$scope',function(scope$){ }]); </script> </body> </html>
操作効果は次のとおりです:
上記は、皆さんのためにまとめたものです。将来的に皆さんのお役に立てれば幸いです。
関連記事:
React Native Flexbox レイアウトの詳細な解釈
Koa を使用して Node.js を通じてプロジェクトを構築する
以上がAngularJSでドラッグ&ドロップ機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。