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

