- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- angularJS如何實(shí)現指令封裝回到頂部
這篇文章主要介紹angularJS如何實(shí)現指令封裝回到頂部,文中介紹的非常詳細,具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
1.構建指令,使用registerDirective構建指令添加到內部的hasDirectives對象內,以方便后面在全局查找指令的時(shí)候進(jìn)行匹配。
/** **回到頂部 **/ define(["app"], function (app) { app().registerDirective("backToTop", function () { return { restrict: "E", link: function (scope, element, attr) { var e = $(element); $(window).scroll(function () { //滾動(dòng)時(shí)觸發(fā) if ($(document).scrollTop() > 300) //獲取滾動(dòng)條到頂部的垂直高度,到相對頂部300px高度顯示 e.fadeIn(300) else e.fadeOut(200); }); /*點(diǎn)擊回到頂部*/ e.click(function () { $('html, body').animate({ //添加animate動(dòng)畫(huà)效果 scrollTop: 0 }, 500); }); } }; }); });
注:
registerDirective 是$CompileProvider的方法,主要就是把內建指令添加到內部的hasDirectives對象內,以方便后面在全局查找指令的時(shí)候進(jìn)行匹配。
指令從html的角度,可以認為指令名字是一個(gè)標識符,可以作為元素名(E),元素屬性(A),注釋?zhuān)∕),類(lèi)名(C)出現在html中;而從JavaScript的角度,則可以認為是返回的一個(gè)規范化的有特殊意義的指令對象。
link函數創(chuàng )建可以操作dom的指令,簽名如下:
link:function(scope,element,attrs){};
scope在其內部作用域注冊監聽(tīng)器的作用域。
element代表實(shí)例元素,指使用此指令的元素。在postLink函數中我們應該只操作此 元素的子元素,因為子元素已經(jīng)被鏈接過(guò)了。
attrs 代表實(shí)例屬性,是一個(gè)由定義在元素上的屬性組成的標準化列表,可以在所有指 令的鏈接函數間共享。會(huì )以JavaScript對象的形式進(jìn)行傳遞。 2. 將定義的 backToTop 指令對象在頁(yè)面調用。
2.在頁(yè)面調用backToTop指令
<back-to-top class="back_top" title="返回頂部"> <i class="fa fa-angle-up"></i> </back-to-top>
注:
restrict - EACM的子集的字符串,它限制directive為指定的聲明方式。如果省略的話(huà),directive將僅僅允許通過(guò)屬性聲明:
E - 元素名稱(chēng): <back-to-top></back-to-top>
A - 屬性名: <div back-to-top</div>
C - class名: <div class=”back-to-top”></div>
M - 注釋 : <!-- back-to-top -->
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站