使用angular幫你實(shí)現(xiàn)拖拽的示例
拖拽有多種寫法,在這里就看一看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)松開(kāi)時(shí)關(guān)閉所有事件
$(document).off();
})
})
},
restrict:'A', //ECMA E元素 C類名 M注釋 A屬性
};
});
</script>
</html>
以上這篇使用angular幫你實(shí)現(xiàn)拖拽的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Angular CDK實(shí)現(xiàn)一個(gè)Service彈出Toast組件功能
本文主要寫用cdk實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Toast組件,使用的是cdk中的overlay模塊,需要手動(dòng)安裝環(huán)境,具體安裝方法及相關(guān)實(shí)現(xiàn)代碼跟隨小編一起看看吧2021-07-07
Angular4學(xué)習(xí)教程之HTML屬性綁定的方法
這篇文章主要給大家介紹了關(guān)于Angular4學(xué)習(xí)教程之HTML屬性綁定的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
詳解angular2實(shí)現(xiàn)ng2-router 路由和嵌套路由
本篇文章主要介紹了詳解angular2實(shí)現(xiàn)ng2-router 路由和嵌套路由,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
如何在AngularJs中調(diào)用第三方插件庫(kù)
在AngularJs中我們會(huì)不可避免的使用第三方庫(kù),這篇文章主要介紹了如何在AngularJs中調(diào)用第三方插件庫(kù),有興趣的可以了解下2017-05-05
Angular使用ControlValueAccessor創(chuàng)建自定義表單控件
這篇文章主要介紹了Angular使用ControlValueAccessor創(chuàng)建自定義表單控件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03
快速學(xué)習(xí)AngularJs HTTP響應(yīng)攔截器
任何時(shí)候,如果我們想要為請(qǐng)求添加全局功能,例如身份認(rèn)證、錯(cuò)誤處理等,在請(qǐng)求發(fā)送給服務(wù)器之前或服務(wù)器返回時(shí)對(duì)其進(jìn)行攔截,是比較好的實(shí)現(xiàn)手段2015-12-12
AngularJS使用ng-repeat遍歷二維數(shù)組元素的方法詳解
這篇文章主要介紹了AngularJS使用ng-repeat遍歷二維數(shù)組元素的方法,結(jié)合實(shí)例形式分析了AngularJS二維數(shù)組元素遍歷的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
angularJs中$scope數(shù)據(jù)序列化的實(shí)例
今天小編就為大家分享一篇angularJs中$scope數(shù)據(jù)序列化的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09

