您好,登錄后才能下訂單哦!
這篇文章主要介紹angularJS如何實現指令封裝回到頂部,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1.構建指令,使用registerDirective構建指令添加到內部的hasDirectives對象內,以方便后面在全局查找指令的時候進行匹配。
/** **回到頂部 **/ define(["app"], function (app) { app().registerDirective("backToTop", function () { return { restrict: "E", link: function (scope, element, attr) { var e = $(element); $(window).scroll(function () { //滾動時觸發 if ($(document).scrollTop() > 300) //獲取滾動條到頂部的垂直高度,到相對頂部300px高度顯示 e.fadeIn(300) else e.fadeOut(200); }); /*點擊回到頂部*/ e.click(function () { $('html, body').animate({ //添加animate動畫效果 scrollTop: 0 }, 500); }); } }; }); });
注:
registerDirective 是$CompileProvider的方法,主要就是把內建指令添加到內部的hasDirectives對象內,以方便后面在全局查找指令的時候進行匹配。
指令從html的角度,可以認為指令名字是一個標識符,可以作為元素名(E),元素屬性(A),注釋(M),類名(C)出現在html中;而從JavaScript的角度,則可以認為是返回的一個規范化的有特殊意義的指令對象。
link函數創建可以操作dom的指令,簽名如下:
link:function(scope,element,attrs){};
scope在其內部作用域注冊監聽器的作用域。
element代表實例元素,指使用此指令的元素。在postLink函數中我們應該只操作此 元素的子元素,因為子元素已經被鏈接過了。
attrs 代表實例屬性,是一個由定義在元素上的屬性組成的標準化列表,可以在所有指 令的鏈接函數間共享。會以JavaScript對象的形式進行傳遞。 2. 將定義的 backToTop 指令對象在頁面調用。
2.在頁面調用backToTop指令
<back-to-top class="back_top" title="返回頂部"> <i class="fa fa-angle-up"></i> </back-to-top>
注:
restrict - EACM的子集的字符串,它限制directive為指定的聲明方式。如果省略的話,directive將僅僅允許通過屬性聲明:
E - 元素名稱: <back-to-top></back-to-top>
A - 屬性名: <div back-to-top</div>
C - class名: <div class=”back-to-top”></div>
M - 注釋 : <!-- back-to-top -->
以上是“angularJS如何實現指令封裝回到頂部”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。