国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

微信小程序 scroll-view實現錨點滑動的示例

2019-11-19 14:46:45
字體:
來源:轉載
供稿:網友

前言

最近開始做小程序,通讀一遍文檔再上手并不算難,但不得不說小程序里還是有一些坑。這里說一下如何實現頁面錨點跳轉,一個城市列表的效果示意圖如下:


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

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

具體實現

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

復制代碼 代碼如下:

<scroll-view scroll-y style="height: 200px;" bindscroll="scroll" scroll-into-view="{{toView}}" >

scroll-into-view:這個綁定了一個屬性,它的值應該是頁面元素的id,設置它的值就可以跳轉到ID對應的元素那里了。

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

bindscroll:監聽滑動,傳給他一個事件,滑動時執行該事件

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

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

幾點優化

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

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

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

2017/12/05補充:

scroll-view默認是無滑動動畫的,需要滾動的動畫效果需要在組件上設置:scroll-with-animation='true'
關于固定高度height的設置問題,一開始我以為這個高度和滾動元素的數目/高度有關,這個時候處理動態變化的列表就很麻煩。后面在網上看到的一個方法就是使用wx.getSystemInfo方法得到windowHeight,把這個設置為scroll-view的高度(單位為px)即可。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 全州县| 中江县| 柳林县| 孝义市| 高平市| 罗山县| 荣成市| 丹寨县| 苍南县| 海南省| 长寿区| 渝中区| 银川市| 长武县| 亚东县| 浦北县| 攀枝花市| 佛坪县| 社旗县| 全椒县| 漠河县| 蒙山县| 铜山县| 昌乐县| 三明市| 区。| 同心县| 怀宁县| 金坛市| 高密市| 海原县| 西华县| 慈利县| 教育| 榆林市| 聂拉木县| 维西| 井陉县| 石城县| 凌海市| 白城市|