Vuescroll - 一個(gè)基于Vue的虛擬滾動(dòng)條

推薦一個(gè)基于Vue的滾動(dòng)條-Vuescroll

GitHub地址:vuescroll

靈感來源

以前接觸過一個(gè)后端管理系統(tǒng)命浴, 叫H+辖众, 偶爾發(fā)現(xiàn)它用的是左側(cè)菜單沒有滾動(dòng)條嘁傀, 于是楞件, 我仔細(xì)查看dom衫生, 發(fā)現(xiàn)H+ 左側(cè)菜單的旁邊有一個(gè)小的DIV, 我拖動(dòng)的土浸, 菜單竟然也能滾動(dòng)罪针, 我明白了, 這是用的虛擬滾動(dòng)條黄伊, 我感覺這個(gè)挺不錯(cuò)的泪酱, 后來查看這個(gè)虛擬滾動(dòng)條的源碼, 發(fā)現(xiàn)是一個(gè)款叫做SlimScroll的基于jquery的庫还最。由于我對(duì)Vue比較熟悉墓阀,所以,我想用Vue做一個(gè)類似的拓轻。

不斷踩坑

一開始用slimScroll的方法并不理想斯撮, slimscroll的滾動(dòng)內(nèi)容的方法是:

  1. 監(jiān)聽滾輪事件,根據(jù)滾動(dòng)每次滾動(dòng)的距離扶叉,然后計(jì)算內(nèi)容滑動(dòng)的距離勿锅。
  2. 監(jiān)聽拖動(dòng)滾動(dòng)把手的事件,通過拖動(dòng)滾動(dòng)把手的距離來滑動(dòng)內(nèi)容的距離枣氧。

這有個(gè)2致命的缺點(diǎn):

  1. 不能平滑的滾動(dòng)溢十, 什么叫不能平滑地滾動(dòng)? 就是滾動(dòng)到目標(biāo)的點(diǎn)沒有一個(gè)過度的效果达吞, 一下子就突然到目的地了张弛。
  2. 在手機(jī)端上的時(shí)候, 當(dāng)手指滑動(dòng)離開滾動(dòng)內(nèi)容的時(shí)候, 內(nèi)容不能繼續(xù)滾動(dòng)乌庶!

這兩點(diǎn)帶來了極差的UI體驗(yàn)种蝶!

后來, 我無意中發(fā)現(xiàn)了element-ui也是使用了虛擬滾動(dòng)條瞒大, 并且效果很好螃征, 尤其是在手機(jī)端滑動(dòng), 每次滑動(dòng)結(jié)束手離開屏幕都能繼續(xù)滑行一段距離透敌, 比slimscroll效果要好盯滚,于是我就去element-ui的github上翻scrollbar的源碼, 通過閱讀源碼酗电, 我發(fā)現(xiàn)element-ui觸發(fā)滾動(dòng)的時(shí)機(jī)是在onscroll的時(shí)候魄藕, 也就是說, 把滾動(dòng)內(nèi)容的父元素設(shè)置為overflow:scroll撵术, 然后監(jiān)聽父元素的onScroll事件背率, 在onScroll事件的callback里面移動(dòng)滾動(dòng)內(nèi)容即可。 經(jīng)過我的一番改進(jìn)嫩与, 終于能做到和element-ui滾動(dòng)條滾動(dòng)的一個(gè)效果了寝姿。

滾動(dòng)條升級(jí)

后來,我又接觸到了幾個(gè)不錯(cuò)的划滋, 并把它們的特點(diǎn)加進(jìn)來了饵筑。 如element-resize-detector, scroller, smooth-scroll, bertter-scroll等等处坪。 現(xiàn)在的Vuescroll已經(jīng)升級(jí)為一個(gè)功能強(qiáng)大的滾動(dòng)條了根资。

它的基本特點(diǎn)有:

  • 為Vue量身打造,擁有Vue響應(yīng)式的特點(diǎn)同窘。
  • 可以通過選擇不同的模式來運(yùn)行在PC端或者手機(jī)上:
    • native 模式: 類似于原生的滾動(dòng)條玄帕,但是可以自定義滾動(dòng)條樣式,使用于PC端用戶塞椎。
    • slide 模式: 允許你用手指或鼠標(biāo)滑動(dòng)內(nèi)容桨仿, 可以滑動(dòng)超出邊界范圍睛低,適用于移動(dòng)端端用戶案狠。
    • pure-native模式: 滾動(dòng)條使用原生的滾動(dòng)條,適用于喜歡原生滾動(dòng)條的用戶钱雷。
  • 檢測滾動(dòng)內(nèi)容發(fā)生尺寸變化并自動(dòng)更新滾動(dòng)條骂铁。
  • 通過使用 不同的滾動(dòng)動(dòng)畫來平滑滾動(dòng)。
  • 下拉-刷新 (拉倒頂部并拉出邊界開始刷新列表)
  • 上推-加載 (推到底部并且退出邊界開始加載列表)
  • 能夠放大或者縮小滾動(dòng)的內(nèi)容.
  • 分頁 (每次滑動(dòng)整個(gè)頁面)
  • 截?cái)?(每次滑動(dòng)一個(gè)用戶定義的距離)
  • 能夠禁止X或Y方向上的滾動(dòng)罩抗。
  • 能夠設(shè)置滾動(dòng)條是否保持顯示拉庵。
  • 能夠設(shè)置滾動(dòng)條,軌道的顏色和透明度套蒂。
  • 能夠設(shè)置滾動(dòng)條钞支,軌道的位置茫蛹。
  • 能夠自定義內(nèi)容的標(biāo)簽 (也就是說你能夠設(shè)置內(nèi)容的標(biāo)簽為一個(gè)組件)

總的來說,Vuescroll不僅僅只一個(gè)滾動(dòng)條烁挟, 你可以用它制作一個(gè)輪播圖婴洼、時(shí)間選擇器、能夠自動(dòng)偵測內(nèi)容發(fā)生變化的一個(gè)插件等等撼嗓。

部分參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柬采,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子且警,更是在濱河造成了極大的恐慌粉捻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斑芜,死亡現(xiàn)場離奇詭異肩刃,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杏头,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門树酪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人大州,你說我怎么就攤上這事续语。” “怎么了厦画?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵疮茄,是天一觀的道長。 經(jīng)常有香客問我根暑,道長力试,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任排嫌,我火速辦了婚禮畸裳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淳地。我一直安慰自己怖糊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布颇象。 她就那樣靜靜地躺著伍伤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遣钳。 梳的紋絲不亂的頭發(fā)上扰魂,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音劝评,去河邊找鬼姐直。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蒋畜,可吹牛的內(nèi)容都是我干的简肴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼百侧,長吁一口氣:“原來是場噩夢啊……” “哼砰识!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佣渴,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤辫狼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后辛润,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膨处,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年砂竖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了真椿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乎澄,死狀恐怖突硝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情置济,我是刑警寧澤解恰,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站浙于,受9級(jí)特大地震影響护盈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羞酗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一腐宋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧檀轨,春花似錦胸竞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剂府。三九已至拧揽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背淤袜。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工痒谴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铡羡。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓积蔚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烦周。 傳聞我的和親對(duì)象是個(gè)殘疾皇子尽爆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容