溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

angularJS如何實現(xiàn)指令封裝回到頂部

發(fā)布時間:2021-07-26 14:17:52 來源:億速云 閱讀:154 作者:小新 欄目:web開發(fā)

這篇文章主要介紹angularJS如何實現(xiàn)指令封裝回到頂部,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

1.構(gòu)建指令,使用registerDirective構(gòu)建指令添加到內(nèi)部的hasDirectives對象內(nèi),以方便后面在全局查找指令的時候進(jìn)行匹配。

/** 
**回到頂部 
**/ 
 
define(["app"], function (app) { 
   
  app().registerDirective("backToTop", function () { 
    return { 
      restrict: "E", 
      link: function (scope, element, attr) { 
        var e = $(element); 
        $(window).scroll(function () {         //滾動時觸發(fā) 
          if ($(document).scrollTop() > 300)     //獲取滾動條到頂部的垂直高度,到相對頂部300px高度顯示 
            e.fadeIn(300) 
          else 
            e.fadeOut(200); 
        }); 
        /*點擊回到頂部*/ 
        e.click(function () { 
          $('html, body').animate({         //添加animate動畫效果 
            scrollTop: 0 
          }, 500); 
        }); 
      } 
    }; 
  }); 
});

注:

registerDirective 是$CompileProvider的方法,主要就是把內(nèi)建指令添加到內(nèi)部的hasDirectives對象內(nèi),以方便后面在全局查找指令的時候進(jìn)行匹配。

指令從html的角度,可以認(rèn)為指令名字是一個標(biāo)識符,可以作為元素名(E),元素屬性(A),注釋(M),類名(C)出現(xiàn)在html中;而從JavaScript的角度,則可以認(rèn)為是返回的一個規(guī)范化的有特殊意義的指令對象。

link函數(shù)創(chuàng)建可以操作dom的指令,簽名如下:

link:function(scope,element,attrs){};

scope在其內(nèi)部作用域注冊監(jiān)聽器的作用域。

element代表實例元素,指使用此指令的元素。在postLink函數(shù)中我們應(yīng)該只操作此 元素的子元素,因為子元素已經(jīng)被鏈接過了。

attrs 代表實例屬性,是一個由定義在元素上的屬性組成的標(biāo)準(zhǔn)化列表,可以在所有指 令的鏈接函數(shù)間共享。會以JavaScript對象的形式進(jìn)行傳遞。 2. 將定義的 backToTop 指令對象在頁面調(diào)用。

2.在頁面調(diào)用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如何實現(xiàn)指令封裝回到頂部”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI