項目使用mpvue開發css
scroll-view
默認是不滾動的。。因此要先設置scroll-x="true"
或者scroll-y="true"
scroll-view
裏面添加定寬元素,超過scroll-view
寬度(設置了100%,即屏幕寬度)後,它居然換行了。因此要scroll-view
的樣式要這樣設置:scroll-view { width: 100%; white-space: nowrap; // 不讓它換行 }
// html大概長這樣 <scroll-view scroll-x="true"> <div class="tab-item"> <img class="content-icon"/> <div></div> </div> <div class="tab-item"> <img class="content-icon"/> <div></div> </div> <div class="tab-item"> <img class="content-icon"/> <div></div> </div> </scroll-view> // css相應就大概長這樣 scroll-view { display: flex; flex-wrap: nowrap; } .tab-item { display: flex; justify-content: center; width: 25%; ... }
而後發現.tab-item
並無排在一行上。。說明scroll-view
和.tab-item
都設置display: flex
無效?無奈之下,只好在它外邊再包一層,而後樣式設置display: inline-block
。此時正確姿式以下:html
// html <div class="scroll-view-container"> <scroll-view scroll-x="true" :scroll-into-view="toView"> <div class="tab-container"> <div class="tab-item"> <img class="content-icon"/> <div></div> </div> </div> </scroll-view> </div> // css變成這樣子 scroll-view { width: 100%; white-space: nowrap; // 不讓它換行 } .tab-container { display: inline-block; width: 25%; } .tab-item { display: flex; flex-direction: column; align-items: center; ... }
到這裏,scroll-view
就基本如我所願了,大概長這樣:vue
在網上搜了不少,都是說加上這段代碼就能夠:web
/*隱藏滾動條*/ ::-webkit-scrollbar{ width: 0; height: 0; color: transparent; }
或者有的人說這樣子:小程序
/*隱藏滾動條*/ ::-webkit-scrollbar{ display: none; }
scroll-view
的滾動條依然存在。。測試機型是安卓機子。display: none
這種方法是能夠隱藏掉頁面的滾動條的,就是scroll-view
的滾動條沒隱藏掉。
是的,就是這種野路子。固然 ,它下面的評論裏也有人提供了另外一種解決思路方法,但我仍是選擇了官方說的那種野路子方法。傳送門
實現思路就是,在scroll-view
外邊再包一個容器,它的高度小於scroll-view
的高度,這樣就會截掉滾動條,達到隱藏了滾動條的效果。測試
// scss .scroll-view-container { // 包裹scroll-view的容器 height: $fakeScrollHeight; overflow: hidden; // 這個設置了就能截掉滾動條啦 scroll-view { width: 100%; white-space: nowrap; } } .tab-container { // 我這裏是用.tab-container來撐開scroll-view的高度,因此高度在它上面設置,加上padding,那麼它就會比外層容器(.scroll-view-container)要高 display: inline-block; width: 26%; height: $fakeScrollHeight; padding-bottom: $scrollBarHeight; }
大概意思是這樣:flex