溫馨提示×

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

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

詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)

發(fā)布時(shí)間:2020-09-25 17:59:04 來(lái)源:腳本之家 閱讀:274 作者:ever 欄目:web開(kāi)發(fā)

一、實(shí)踐踩坑

項(xiàng)目使用mpvue開(kāi)發(fā)

1. scroll-view默認(rèn)是不滾動(dòng)的。。所以要先設(shè)置scroll-x="true"或者scroll-y="true"

詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)

2. 在scroll-view里面添加定寬元素,超過(guò)scroll-view寬度(設(shè)置了100%,即屏幕寬度)后,它竟然換行了。所以要scroll-view的樣式要這樣設(shè)置:

 scroll-view {
   width: 100%;
   white-space: nowrap; // 不讓它換行
  }

3. 然后在定寬元素里邊添加子容器:

// html大概長(zhǎng)這樣
<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相應(yīng)就大概長(zhǎng)這樣
scroll-view {
  display: flex;
  flex-wrap: nowrap;
}
.tab-item {
  display: flex;
  justify-content: center;
  width: 25%;
  ...
}

然后發(fā)現(xiàn).tab-item并沒(méi)有排在一行上。。說(shuō)明scroll-view.tab-item都設(shè)置display: flex無(wú)效?無(wú)奈之下,只好在它外邊再包一層,然后樣式設(shè)置display: inline-block。此時(shí)正確姿勢(shì)如下:

// 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就基本如我所愿了,大概長(zhǎng)這樣:

詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)

二、隱藏滾動(dòng)條

在網(wǎng)上搜了很多,都是說(shuō)加上這段代碼就可以:

/*隱藏滾動(dòng)條*/

::-webkit-scrollbar{

  width: 0;
  
  height: 0;
  
  color: transparent;

}

或者有的人說(shuō)這樣子:

/*隱藏滾動(dòng)條*/

::-webkit-scrollbar{

  display: none;

}

然而兩種方法我都試過(guò),scroll-view的滾動(dòng)條依然存在。。測(cè)試機(jī)型是安卓機(jī)子。

但是用display: none這種方法是可以隱藏掉頁(yè)面的滾動(dòng)條的,就是scroll-view的滾動(dòng)條沒(méi)隱藏掉。

后來(lái),在小程序社區(qū)看到官方人員這樣子解答:

詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)

是的,就是這種野路子。當(dāng)然 ,它下面的評(píng)論里也有人提供了另一種解決思路方法,但我還是選擇了官方說(shuō)的那種野路子方法。傳送門(mén)

實(shí)現(xiàn)思路就是,在scroll-view外邊再包一個(gè)容器,它的高度小于scroll-view的高度,這樣就會(huì)截掉滾動(dòng)條,達(dá)到隱藏了滾動(dòng)條的效果。

// scss
.scroll-view-container { // 包裹scroll-view的容器
  height: $fakeScrollHeight;
  overflow: hidden; // 這個(gè)設(shè)置了就能截掉滾動(dòng)條啦
  scroll-view {
   width: 100%;
   white-space: nowrap;
  }
 }

 .tab-container { // 我這里是用.tab-container來(lái)?yè)伍_(kāi)scroll-view的高度,所以高度在它上面設(shè)置,加上padding,那么它就會(huì)比外層容器(.scroll-view-container)要高
  display: inline-block;
  width: 26%;
  height: $fakeScrollHeight;
  padding-bottom: $scrollBarHeight;
 }

大概意思是這樣:

詳解微信小程序scroll-view橫向滾動(dòng)的實(shí)踐踩坑及隱藏其滾動(dòng)條的實(shí)現(xiàn)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

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

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

AI