vue外掛——滾動監聽 vue-scrollwatch

caijiaoasi發表於2018-02-03

造輪子的目的:

做專案的時候需要一個滾動監聽的功能,html結構已經都寫好了,不想使用vue元件的方式來寫,因為不想改造html結構,於是花了幾個小時做了一個簡單的,使用vue指令方式來做的,專案上夠用就結束了。 後來想想反正還差沒多少還不如完善完善做成外掛吧。 結果花了兩天多。。

先看效果

demo

主要的坑:

  • 滾動的動畫效果,抄襲了 vue-scrollactive的做法,用到庫bezier-easing 。當然,這個外掛相對於vue-scrollactive的優勢在於,我可以指定滾動容器,並不僅限於window下的滾動。
  • 低版本的chrome核心 dom物件沒有scrollTo 方法,使用dom.scrollTop = value 來替代。當然,這是基礎知識薄弱造成的。。。
  • 某些瀏覽器不支援 document.body.scrollTop; 某些瀏覽器不支援 document.documentElement.scrollTop 。。呵呵噠
  • vue中指令對於dom的操作時機:inserted 是在created 之後,在mounted之前

特性

  • 滾動時判斷出視窗中當前元素
  • 暴露api scrollTo 自由指定要滾到的位置
  • 滾動容器自由指定,不侷限於window
  • vue 指令的方式
  • 監聽元素沒有任何限制,無需使用id 或者 class 標記。當然,如果要指定滾動容器,那必須要有一個id 或者class
  • 導航列表沒有任何限制

缺陷

  • 用起來不是那麼傻瓜式
  • 動畫目前還不能自定義
  • 目前還不能一個頁面指定兩個以上需要監聽的滾動容器

開源地址

github.com/Desdesdesgo…

相關文章