溫馨提示×

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

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

微信小程序中scroll-view實(shí)現(xiàn)錨點(diǎn)滑動(dòng)的方法

發(fā)布時(shí)間:2021-06-29 15:31:56 來(lái)源:億速云 閱讀:166 作者:小新 欄目:web開(kāi)發(fā)

這篇文章主要介紹微信小程序中scroll-view實(shí)現(xiàn)錨點(diǎn)滑動(dòng)的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

示意圖如下:

微信小程序中scroll-view實(shí)現(xiàn)錨點(diǎn)滑動(dòng)的方法

因?yàn)樵谖⑿判〕绦虻沫h(huán)境中不能想在瀏覽器里設(shè)置標(biāo)簽,或者操作dom滾動(dòng),傳統(tǒng)做法就行不通了,一切都得按小程序的文檔來(lái)。

一開(kāi)始我們的做法是使用boundingClientRect()方法獲取每個(gè)錨點(diǎn)的坐標(biāo),然后再用wx.pageScrollTo()方法滑動(dòng)過(guò)去。結(jié)果發(fā)現(xiàn)效果不是很好,因?yàn)閎oundingClientRect方法返回的每個(gè)點(diǎn)的坐標(biāo)會(huì)隨著屏幕滑動(dòng)而變化,可能還會(huì)引起頁(yè)面抖動(dòng),最后還是選擇scroll-view(可滾動(dòng)視圖區(qū)域)組件來(lái)實(shí)現(xiàn)錨點(diǎn)效果。

具體實(shí)現(xiàn)

具體API就不贅述了,可以去看官方文檔,這里講幾個(gè)需要注意的地方,下面是一個(gè)示意的scroll-view組件代碼,上面的幾個(gè)屬性是必須的:

復(fù)制代碼 代碼如下:


<scroll-view scroll-y  bindscroll="scroll" scroll-into-view="{{toView}}" >

scroll-into-view:這個(gè)綁定了一個(gè)屬性,它的值應(yīng)該是頁(yè)面元素的id,設(shè)置它的值就可以跳轉(zhuǎn)到ID對(duì)應(yīng)的元素那里了。

scroll-y:添加這個(gè)屬性標(biāo)明是豎向滑動(dòng)的,對(duì)應(yīng)的scroll-x則表示橫向滑動(dòng),豎向滑動(dòng)時(shí)scroll-view必須設(shè)置一個(gè)固定的height

bindscroll:監(jiān)聽(tīng)滑動(dòng),傳給他一個(gè)事件,滑動(dòng)時(shí)執(zhí)行該事件

文檔上給的屬性特別多,暫時(shí)只需要上述幾個(gè)就可實(shí)現(xiàn)我們想要的效果。實(shí)現(xiàn)原理也很簡(jiǎn)單,內(nèi)容部分,每個(gè)英文簡(jiǎn)寫(xiě)的view設(shè)置一個(gè)id,然后在導(dǎo)航list那里點(diǎn)擊時(shí),就把scroll-into-view的值設(shè)置成點(diǎn)擊的那個(gè)id即可實(shí)現(xiàn)跳轉(zhuǎn)。

再說(shuō)一下scroll-view的高度問(wèn)題,這個(gè)一定要做適配的固定高度,不然在不同屏幕大小的手機(jī)上的顯示效果有差異。

幾點(diǎn)優(yōu)化

到這里功能基本都實(shí)現(xiàn)了,但后面還發(fā)現(xiàn)一些問(wèn)題:如果要隱藏scroll-view的滾動(dòng)條,需要設(shè)置css樣式:::-webkit-scrollbar

::-webkit-scrollbar {
 width: 0;
 height: 0;
 color: transparent;
}

還有就是點(diǎn)了一個(gè)錨點(diǎn)實(shí)現(xiàn)了跳轉(zhuǎn),這個(gè)時(shí)候你滾動(dòng)頁(yè)面再點(diǎn)之前點(diǎn)的錨點(diǎn),頁(yè)面就不會(huì)再跳轉(zhuǎn)了,這個(gè)時(shí)候就需要監(jiān)聽(tīng)滾動(dòng)事件,滾動(dòng)時(shí)將scroll-into-view屬性的值清空?;蛘咴诿看五^點(diǎn)跳轉(zhuǎn)后,再由一個(gè)異步操作將scroll-into-view屬性的值清空。

以上是“微信小程序中scroll-view實(shí)現(xiàn)錨點(diǎn)滑動(dòng)的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

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

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎ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