老樣紙,先上圖:
先上**:
html模板**:
<指令**:div
class=
>
<
div
class=
"slide-item"
ref=
"slide"
>
<
div
class=
"content"
ref=
"content"
>
<
div
ng-transclude=
"content"
>
div>
div>
<
div
class=
"side"
ref=
"side"
>
<
div
ng-transclude=
"side"
>
div>
div>
div>
div>
/*refs函式:* created by weishengjian
* date 20180319
*//*
示例**
*//*
dlasdjalkj
dlasdjalkj
dlasdjalkj
dlasdjalkj
*/.directive(
'slideitem'
, function
($rootscope)
,controller
: function
() });}
,link:
;slide
.currentshow = false;
var
touchstart
= function
(e)
;var
touchmove
= function
(e)
;var
touchend
= function
(e)
else
} else
else
}slide
.style.left =
offsetwidth
+ 'px'
;slide
.style[
'transition'
] =
'all 0.4s';}
;content
.addeventlistener
('touchstart'
, touchstart);
content
.addeventlistener
('touchmove'
, touchmove);
content
.addeventlistener
('touchend'
, touchend);
}}}})
;
/*這裡面是用了jquery的,在使用這個指令之前,記得先引入jquery。*
在指令中,獲取作用域範圍內的所有用了
ref屬性標記的節點,如果
ref值相同,通過
getrefs(element).
別名 結果是乙個陣列,如果
ref值只有乙個,測獲取的就是乙個物件
* element
:在指令中,
$element
物件,也就是指令本身物件
*/function
getrefs
(element)
;for
(var
i = 0;
i <
refs
.length; i++
) for
(var
key
in result
) return
result
;}
這個指令的核心在於兩點,一點是使用了transclude,還有一點是,將一些狀態資訊儲存在dom節點中。
首先是transclude,有slide-side(存放側滑內容)以及slide-content(主體內容),有乙個div.slide-item包裹著這兩個div,在滑動的時候,是整個slide-item滑動,如果同學們只想slide-side滑動的話,需要調整一下**。
還有乙個核心點是,將狀態資訊存到dom節點,我這裡資訊就是存到dom節點中的,這裡最主要的_touch物件就是存在slide-item這個dom物件,因為側滑的時候是有狀態的,當然你在宣告指令的時候可以建立乙個自己的作用域,scope為true或者乙個物件,但是這樣的話,slide-content以及slide-side中獲取的資料就有可能會不正常,我這裡為了完全不影響作用域,就將一些資料存在了dom物件中。
……漏了樣式**:}}
}}}
angularjs自定義標籤
具有功能 1 支援按多列進行模糊查詢。2 資料模板可以指定輸出元素。查詢輸入框 標籤封裝 form表單中input型別為text的標籤 並且需要彈窗查詢資料 封裝 專案封裝標籤 input table 屬性 table resultjson jsonresulta 後端返回的資料物件 json陣列 ...
angularJs自定義指令
e 元素 a 屬性,預設值 c 類名 m 注釋 directive my directive expression priority 優先順序 用來表示指令使用的優先順序 如果乙個元素上具有兩個優先順序相同的指令,宣告在前面的那個會被優先呼叫。如果其中一 個的優先順序更高,則不管宣告的順序如何都會被...
AngularJS自定義指令
自定義的指令定義 1.directive 方法可以接受兩個引數,第乙個引數是指令的名字,第二個引數是函式,第二個引數用來返回指令的具體內容。2.指令的引數包括 restrict eacm 分別對應元素 屬性 類名 注釋 主要體現在呼叫指令時的不一樣 優先順序 ngrepeat,來定該自定義標籤的優先...