微信小程序中scroll-view實現(xiàn)錨點滑動的方法

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

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|網(wǎng)站維護|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋效果圖設(shè)計等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身制作品質(zhì)網(wǎng)站。

示意圖如下:

微信小程序中scroll-view實現(xiàn)錨點滑動的方法

因為在微信小程序的環(huán)境中不能想在瀏覽器里設(shè)置標簽,或者操作dom滾動,傳統(tǒng)做法就行不通了,一切都得按小程序的文檔來。

一開始我們的做法是使用boundingClientRect()方法獲取每個錨點的坐標,然后再用wx.pageScrollTo()方法滑動過去。結(jié)果發(fā)現(xiàn)效果不是很好,因為boundingClientRect方法返回的每個點的坐標會隨著屏幕滑動而變化,可能還會引起頁面抖動,最后還是選擇scroll-view(可滾動視圖區(qū)域)組件來實現(xiàn)錨點效果。

具體實現(xiàn)

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

復制代碼 代碼如下:


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

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

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

bindscroll:監(jiān)聽滑動,傳給他一個事件,滑動時執(zhí)行該事件

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

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

幾點優(yōu)化

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

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

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

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

當前文章:微信小程序中scroll-view實現(xiàn)錨點滑動的方法
本文網(wǎng)址:http://bm7419.com/article12/iipjdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、ChatGPT、網(wǎng)站營銷、軟件開發(fā)、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站