微信小程序組件解讀和分析:二、scroll-view可滾動視圖區域


scroll-view可滾動視圖區域 組件說明:

可滾動視圖區域。

組件用法: 縱向滾動用法

Tip:

  • 使用豎向滾動時,需要給一個固定高度,通過 WXSS 設置 height,否則無法滾動。
  • 當滾動到頂部時會觸發bindscrolltoupper事件(具體可留意GIF輸出)
  • 當滾動到底部時會觸發bindscrolltolower事件(具體可留意GIF輸出)
scroll-view可滾動視圖區域的示例代碼運行效果如下:  
 
 
 
 

下面是WXML代碼:
[XML]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
< scroll-view scroll-y = "true" style = "height: 200px;" bindscrolltoupper = "upper" bindscrolltolower = "lower" bindscroll = "scroll" scroll-into-view = "{{toView}}" scroll-top = "{{scrollTop}}" >
     < view id = "green" class = "scroll-view-item bc_green" ></ view >
     < view id = "red"  class = "scroll-view-item bc_red" ></ view >
     < view id = "yellow" class = "scroll-view-item bc_yellow" ></ view >
     < view id = "blue" class = "scroll-view-item bc_blue" ></ view >
</ scroll-view >
< view class = "btn-area" >
       < button size = "mini" bindtap = "tap" >click me to scroll into view </ button >
       < button size = "mini" bindtap = "tapMove" >click me to scroll</ button >
</ view >



下面是JS代碼:
[JavaScript]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var order = [ 'red' , 'yellow' , 'blue' , 'green' , 'red' ]
Page({
   data: {
     toView: 'green' ,
     scrollTop: 100,
     scrollLeft: 0
   },
   //滾動條滾到頂部的時候觸發
   upper: function (e) {
     console.log(e)
   },
   //滾動條滾到底部的時候觸發
   lower: function (e) {
     console.log(e)
   },
   //滾動條滾動后觸發
   scroll: function (e) {
     console.log(e)
   },
   //點擊按鈕切換到下一個view
   tap: function (e) {
     for ( var i = 0; i < order.length; ++i) {
       if (order === this .data.toView) {
         this .setData({
           toView: order[i + 1]
         })
         break
       }
     }
   },
   //通過設置滾動條位置實現畫面滾動
   tapMove: function (e) {
     this .setData({
       scrollTop: this .data.scrollTop + 10
     })
   }
})

下面是WXSS代碼:

[CSS]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
11
.scroll-view_H{
   white-space : nowrap ;
}
.scroll-view-item{
   height : 200px ;
}
.scroll-view-item_H{
   display : inline- block ;
   width : 100% ;
   height : 200px ;
}


橫向滾動用法
Tip:
  • 橫向滾動無法使用scroll-into-view屬性。
  • 當滾動到最左邊時會觸發bindscrolltoupper事件(具體可留意GIF輸出)
  • 當滾動到最右邊時會觸發bindscrolltolower事件(具體可留意GIF輸出)



橫向滾動用法的 效果圖:


下面是WXML代碼:
[XML]  純文本查看 復制代碼
?
1
2
3
4
5
6
< scroll-view class = "scroll-view_H" scroll-x = "true" style = "width: 100%"  bindscrolltoupper = "upper" bindscrolltolower = "lower" bindscroll = "scroll"  scroll-left = "{{scrollLeft}}" >
     < view id = "green" class = "scroll-view-item_H bc_green" ></ view >
     < view id = "red"  class = "scroll-view-item_H bc_red" ></ view >
     < view id = "yellow" class = "scroll-view-item_H bc_yellow" ></ view >
     < view id = "blue" class = "scroll-view-item_H bc_blue" ></ view >
</ scroll-view >



下面是JS代碼:
[JavaScript]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var order = [ 'red' , 'yellow' , 'blue' , 'green' , 'red' ]
Page({
   data: {
     toView: 'green' ,
     scrollTop: 100,
     scrollLeft: 0
   },
   //滾動條滾到頂部的時候觸發
   upper: function (e) {
     console.log(e)
   },
   //滾動條滾到底部的時候觸發
   lower: function (e) {
     console.log(e)
   },
   //滾動條滾動后觸發
   scroll: function (e) {
     console.log(e)
   },
   //點擊按鈕切換到下一個view
   tap: function (e) {
     for ( var i = 0; i < order.length; ++i) {
       if (order === this .data.toView) {
         this .setData({
           toView: order[i + 1]
         })
         break
       }
     }
   },
   //通過設置滾動條位置實現畫面滾動
   tapMove: function (e) {
     this .setData({
       scrollLeft: this .data.scrollLeft + 10
     })
   }
})


下面是WXSS代碼:
[CSS]  純文本查看 復制代碼
?
01
02
03
04
05
06
07
08
09
10
11
.scroll-view_H{
   white-space : nowrap ;
}
.scroll-view-item{
   height : 200px ;
}
.scroll-view-item_H{
   display : inline- block ;
   width : 100% ;
   height : 200px ;
}



scroll-view可滾動視圖區域的主要屬性:
屬性
類型
默認值
描述
scroll-x
Boolean
false
允許橫向滾動
scroll-y
Boolean
false
允許縱向滾動
upper-threshold
Number
50
距頂部/左邊多遠時(單位px),觸發 scrolltoupper 事件
lower-threshold
Number
50
距底部/右邊多遠時(單位px),觸發 scrolltolower 事件
scroll-top
Number
 
設置豎向滾動條位置
scroll-left
Number
 
設置橫向滾動條位置
scroll-into-view
String
 
值應為某子元素id,則滾動到該元素,元素頂部對齊滾動區域頂部
bindscrolltoupper
EventHandle
 
滾動到頂部/左邊,會觸發 scrolltoupper 事件
bindscrolltolower
EventHandle
 
滾動到底部/右邊,會觸發 scrolltolower 事件
bindscroll
EventHandle
 
滾動時觸發,event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}
點擊查看原文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM