使用angular幫你實(shí)現(xiàn)拖拽的示例
更新時(shí)間:2017年07月05日 08:21:28 投稿:jingxian
下面小編就為大家?guī)?lái)一篇使用angular幫你實(shí)現(xiàn)拖拽的示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
拖拽有多種寫法,在這里就看一看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; /*一定要給當(dāng)前元素設(shè)置絕對(duì)定位*/ 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"> // 自定義一個(gè)模塊 var app = angular.module("myApp",[]); // 自定義指令 自定義指令時(shí)一定要使用駝峰命名法 app.directive('myDrag',function(){ // 返回一個(gè)函數(shù) return{ link : function(scope,element,attr){ // scope可以接收到的數(shù)據(jù) // element 當(dāng)前的元素 // attr屬性 // 拖拽的三大事件mousedown,mousemove,mouseup.使用jq綁定事件的方法進(jìn)行綁定 element.on('mousedown',function(ev){ // 通過(guò)event獲取到當(dāng)前對(duì)象 var This = $(this); // 獲取到鼠標(biāo)離當(dāng)前元素上邊框的距離 var disX = ev.clientX - $(this).offset().left; // 獲取到元素距離左邊框的距離 // 因?yàn)樵谕献У倪^(guò)程中不變的是鼠標(biāo)距離元素邊框的距離 通過(guò)不變和已知求變量 var disY = ev.clientY - $(this).offset().top; $(document).on('mousemove',function(ev){ // 將所改變的值通過(guò)樣式設(shè)置給當(dāng)前元素 This.css({ left:ev.clientX - disX, top:ev.clientY - disY, }); }); $(document).on('mouseup',function(){ // 鼠標(biāo)松開時(shí)關(guān)閉所有事件 $(document).off(); }) }) }, restrict:'A', //ECMA E元素 C類名 M注釋 A屬性 }; }); </script> </html>
以上這篇使用angular幫你實(shí)現(xiàn)拖拽的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
angularjs實(shí)現(xiàn)柱狀圖動(dòng)態(tài)加載的示例
本篇文章主要介紹了angularjs實(shí)現(xiàn)柱狀圖動(dòng)態(tài)加載的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Angular4項(xiàng)目中添加i18n國(guó)際化插件ngx-translate的步驟詳解
這篇文章主要跟大家介紹了關(guān)于Angular4項(xiàng)目中添加i18n國(guó)際化插件ngx-translate的步驟,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07AngularJS使用ng-inlude指令加載頁(yè)面失敗的原因與解決方法
這篇文章主要介紹了AngularJS使用ng-inlude指令加載頁(yè)面失敗的原因與解決方法,對(duì)比不同瀏覽器錯(cuò)誤提示分析了加載失敗的原因及通過(guò)http訪問(wèn)的解決方法,需要的朋友可以參考下2017-01-01AngularJS 簡(jiǎn)單應(yīng)用實(shí)例
本文主要介紹AngularJS 的簡(jiǎn)單應(yīng)用實(shí)例,這里對(duì)AngularJS的知識(shí)總結(jié),并提供實(shí)例代碼和應(yīng)用程序講解,有需要的小伙伴可以參考下2016-07-07div實(shí)現(xiàn)自適應(yīng)高度的textarea實(shí)現(xiàn)angular雙向綁定
本文主要介紹了div實(shí)現(xiàn)自適應(yīng)高度的textarea,實(shí)現(xiàn)angular雙向綁定的方法。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01