當前位置:首頁 » 網頁前端 » 前端vue滾動條
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端vue滾動條

發布時間: 2023-03-23 12:26:24

① vue滾動條消失

這個情況的出現方式很多,我個人寫這個是因為刷新頁面後,本來有的滾動條消失了。這個滾動條是我內置設置好頁面高度的,正常第咐陪冊一次載入是這樣衡宏的

超過高度overflow:auto,按道理說應該會有滾動條,可實際情況卻沒有顯示。

這個原因是因為:頁面跳轉後,body被加上了一個style="overflow: hidden;這是一個bug!!!

解決辦法:

第一種:為body設置屬性overflow: auto !important;

第二亂稿種:用路由設置屬性

router.afterEach((to, from, next) => { document.querySelector("body").setAttribute("style", "overflow: auto !important;")});

② vue 滾動條選中元素自動滾動到可視區域里居中顯示

模擬vant的Tab標簽頁的標簽滾動效果賀搭
效果:選中元素談盯,在滾動條的可視區域裡面自動居中,頭尾兩端不用居中
vant效果: https://youzan.github.io/vant/#/zh-CN/tab

如果這篇文章對你有用,請給我點個贊,讓我更加含拍和有動力寫下去,謝謝

③ vue的滾動條插件vue-scroll

最近在開發Vue項目時,需要實現宴缺世一個頁面的局部滾動條功能。以前實現此類功能都是使用的iframe原生的滾動條功能,保證內容只在div塊內滾動,別的地方不影響。
據嘗試,發現Iview等組件庫都沒有符合這種情況的組件,於是查找了其他組件,最終選用晌肢了vue-scroll插件。

vuescroll 是一個基於 vue.js 2.X 虛擬滾動條, 它支持定製滾扮攜動條的樣式,檢測內容尺寸變化、能夠使內容分頁、支持上拉-刷新,下推載入等諸多特性。

(1)擁有原生滾動條的滾動行為
(2)可以定製滾動條的樣式(包括顏色、尺寸、位置、透明度、是否保持顯示等)
(3)在模式之間自由切換
(4)能夠通過設置滾動動畫來平滑地滾動
(5)拉取刷新和推動載入
(6)支持分頁模式(每次滑動整個頁面)
(7)支持快照模式(每次滑動滾動一個用戶定義的距離)
(8)可以檢測內容尺寸發生變化

在components中再注冊一下

這兩種引入方式都可以,引入後用vuescroll包裹需要滾動的部分

在data中寫明需要修改的配置項

④ vue圖片水平滾動,滾動條高亮滾動位置

Vue圖片水平滾動滾動條高亮滾動位置可以使用Vue的v-scroll指令來實現。v-scroll指令可以接受一個參數,用於指定滾動條的高亮位置。例如:<div v-scroll:index="index">,其中index參數用於指定滾動條高亮位置,可以是一個數字或胡喚者一個字元串。Vue圖片水平滾動滾動條高亮滾動位置可以使用Vue的v-scroll指令來實現。v-scroll指令可以接受一個參數,用於指定滾動條的高亮位置。例如:<div v-scroll:index="index">,其中index參數用於指定滾動條高亮位置,可以是一春做畢個數字或者扒芹一個字元串。

⑤ Vuescroll - 一個基於Vue的虛擬滾動條

推薦一個基於Vue的滾動條-Vuescroll

GitHub地址: vuescroll

以前接觸過一個後端管理系統, 叫碰畝賀H+, 偶爾發現它用的是左側菜單沒有滾動條, 於是, 我仔細查看dom, 發現H+ 左耐正側菜單的旁邊有一個小的DIV, 我拖動的, 菜單竟然也能滾動, 我明白了, 這是用的虛擬滾動條, 我感覺這個挺不錯的, 後來查看這個虛擬滾動條的源碼, 發現是一個款叫做SlimScroll的基於jquery的庫。由於我對Vue比較熟悉,所以,我想用Vue做一個類似的。

一開始用slimScroll的方法並不理想, slimscroll的滾動內容的方法是:

這有個2致命的缺點:

這兩點帶來了極差的UI體驗!

後來, 我無意中發現了element-ui也是使用了虛擬滾笑派動條, 並且效果很好, 尤其是在手機端滑動, 每次滑動結束手離開屏幕都能繼續滑行一段距離, 比slimscroll效果要好,於是我就去element-ui的github上翻scrollbar的源碼, 通過閱讀源碼, 我發現element-ui觸發滾動的時機是在onscroll的時候, 也就是說, 把滾動內容的父元素設置為 overflow:scroll , 然後監聽父元素的onScroll事件, 在onScroll事件的callback裡面移動滾動內容即可。 經過我的一番改進, 終於能做到和element-ui滾動條滾動的一個效果了。

後來,我又接觸到了幾個不錯的, 並把它們的特點加進來了。 如element-resize-detector, scroller, smooth-scroll, bertter-scroll等等。 現在的Vuescroll已經升級為一個功能強大的滾動條了。

它的基本特點有:

總的來說,Vuescroll不僅僅只一個滾動條, 你可以用它製作一個輪播圖、時間選擇器、能夠自動偵測內容發生變化的一個插件等等。

部分參考資料