scroll-view.vue 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <template>
  2. <view>
  3. <page-head title="scroll-view,区域滚动视图"></page-head>
  4. <view class="uni-padding-wrap uni-common-mt">
  5. <view class="uni-title uni-common-mt">
  6. Vertical Scroll
  7. <text>\n纵向滚动</text>
  8. </view>
  9. <view>
  10. <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y" @scrolltoupper="upper" @scrolltolower="lower"
  11. @scroll="scroll">
  12. <view id="demo1" class="scroll-view-item uni-bg-red">A</view>
  13. <view id="demo2" class="scroll-view-item uni-bg-green">B</view>
  14. <view id="demo3" class="scroll-view-item uni-bg-blue">C</view>
  15. </scroll-view>
  16. </view>
  17. <view @tap="goTop" class="uni-link uni-center uni-common-mt">
  18. 点击这里返回顶部
  19. </view>
  20. <view class="uni-title uni-common-mt">
  21. Horizontal Scroll
  22. <text>\n横向滚动</text>
  23. </view>
  24. <view>
  25. <scroll-view class="scroll-view_H" scroll-x="true" @scroll="scroll" scroll-left="120">
  26. <view id="demo1" class="scroll-view-item_H uni-bg-red">A</view>
  27. <view id="demo2" class="scroll-view-item_H uni-bg-green">B</view>
  28. <view id="demo3" class="scroll-view-item_H uni-bg-blue">C</view>
  29. </scroll-view>
  30. </view>
  31. <view class="uni-common-pb"></view>
  32. </view>
  33. </view>
  34. </template>
  35. <script>
  36. export default {
  37. data() {
  38. return {
  39. scrollTop: 0,
  40. old: {
  41. scrollTop: 0
  42. }
  43. }
  44. },
  45. methods: {
  46. upper: function(e) {
  47. console.log(e)
  48. },
  49. lower: function(e) {
  50. console.log(e)
  51. },
  52. scroll: function(e) {
  53. console.log(e)
  54. this.old.scrollTop = e.detail.scrollTop
  55. },
  56. goTop: function(e) {
  57. // 解决view层不同步的问题
  58. this.scrollTop = this.old.scrollTop
  59. this.$nextTick(function() {
  60. this.scrollTop = 0
  61. });
  62. uni.showToast({
  63. icon:"none",
  64. title:"纵向滚动 scrollTop 值已被修改为 0"
  65. })
  66. }
  67. }
  68. }
  69. </script>
  70. <style>
  71. .scroll-Y {
  72. height: 300rpx;
  73. }
  74. .scroll-view_H {
  75. white-space: nowrap;
  76. width: 100%;
  77. }
  78. .scroll-view-item {
  79. height: 300rpx;
  80. line-height: 300rpx;
  81. text-align: center;
  82. font-size: 36rpx;
  83. }
  84. .scroll-view-item_H {
  85. display: inline-block;
  86. width: 100%;
  87. height: 300rpx;
  88. line-height: 300rpx;
  89. text-align: center;
  90. font-size: 36rpx;
  91. }
  92. </style>