angularJs自定義實現側滑指令

2021-08-21 03:12:15 字數 2673 閱讀 3383

老樣紙,先上圖:

先上**:

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>

指令**:

/*

* 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);

}}}})

;

refs函式:

/*

*

在指令中,獲取作用域範圍內的所有用了

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

;}

這裡面是用了jquery的,在使用這個指令之前,記得先引入jquery。

這個指令的核心在於兩點,一點是使用了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,來定該自定義標籤的優先...