scroll-view.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. const order = ['demo1', 'demo2', 'demo3']
  2. Page({
  3. data: {
  4. theme: 'light'
  5. },
  6. onLoad() {
  7. this.setData({
  8. theme: wx.getSystemInfoSync().theme || 'light'
  9. })
  10. if (wx.onThemeChange) {
  11. wx.onThemeChange(({theme}) => {
  12. this.setData({theme})
  13. })
  14. }
  15. this.animate('#scroll-sample-object1', [{
  16. borderRadius: '0',
  17. offset: 0,
  18. }, {
  19. borderRadius: '25%',
  20. offset: 0.5,
  21. }, {
  22. borderRadius: '50%',
  23. offset: 1
  24. }], 2000, {
  25. scrollSource: '#scroll-view_D',
  26. timeRange: 2000,
  27. startScrollOffset: 0,
  28. endScrollOffset: 150,
  29. })
  30. this.animate('#scroll-sample-object2', [{
  31. opacity: 1,
  32. offset: 0,
  33. }, {
  34. opacity: 0.5,
  35. offset: 0.5,
  36. }, {
  37. opacity: 0.3,
  38. offset: 1
  39. }], 2000, {
  40. scrollSource: '#scroll-view_D',
  41. timeRange: 2000,
  42. startScrollOffset: 150,
  43. endScrollOffset: 300,
  44. })
  45. this.animate('#scroll-sample-object3', [{
  46. background: 'white',
  47. offset: 0,
  48. }, {
  49. background: 'yellow',
  50. offset: 1
  51. }], 2000, {
  52. scrollSource: '#scroll-view_D',
  53. timeRange: 2000,
  54. startScrollOffset: 300,
  55. endScrollOffset: 400,
  56. })
  57. },
  58. onPulling(e) {
  59. console.log('onPulling:', e)
  60. },
  61. onRefresh() {
  62. if (this._freshing) return
  63. this._freshing = true
  64. setTimeout(() => {
  65. this.setData({
  66. triggered: false,
  67. })
  68. this._freshing = false
  69. }, 3000)
  70. },
  71. onRestore(e) {
  72. console.log('onRestore:', e)
  73. },
  74. onAbort(e) {
  75. console.log('onAbort', e)
  76. },
  77. onShareAppMessage() {
  78. return {
  79. title: 'scroll-view',
  80. path: 'packageComponent/pages/view/scroll-view/scroll-view'
  81. }
  82. },
  83. data: {
  84. theme: 'light',
  85. toView: 'green',
  86. triggered: false,
  87. },
  88. upper(e) {
  89. console.log(e)
  90. },
  91. lower(e) {
  92. console.log(e)
  93. },
  94. scroll(e) {
  95. console.log(e)
  96. },
  97. scrollToTop() {
  98. this.setAction({
  99. scrollTop: 0
  100. })
  101. },
  102. tap() {
  103. for (let i = 0; i < order.length; ++i) {
  104. if (order[i] === this.data.toView) {
  105. this.setData({
  106. toView: order[i + 1],
  107. scrollTop: (i + 1) * 200
  108. })
  109. break
  110. }
  111. }
  112. },
  113. tapMove() {
  114. this.setData({
  115. scrollTop: this.data.scrollTop + 10
  116. })
  117. }
  118. })