page-scroll-to.uvue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <!-- #ifdef APP -->
  3. <scroll-view style="flex: 1" scroll-with-animation="true">
  4. <!-- #endif -->
  5. <view class="uni-padding-wrap">
  6. <page-head :title="title"></page-head>
  7. <button type="default" class="btn-scrollTo" @click="scrollTo">
  8. scrollTo
  9. </button>
  10. <button type="default" class="btn-scrollToElement" @click="scrollToElement">
  11. scrollToElement
  12. </button>
  13. <view class="uni-list" v-for="(_, index) in 10" :key="index">
  14. <view class="uni-list-cell list-item">{{ index }}</view>
  15. </view>
  16. <view class="custom-element">scrollTo-custom-element</view>
  17. <view class="uni-list" v-for="(_, index2) in 10" :key="index2">
  18. <view class="uni-list-cell list-item">{{ index2 }}</view>
  19. </view>
  20. </view>
  21. <!-- #ifdef APP -->
  22. </scroll-view>
  23. <!-- #endif -->
  24. </template>
  25. <script>
  26. export default {
  27. data() {
  28. return {
  29. title: 'pageScrollTo',
  30. }
  31. },
  32. methods: {
  33. scrollTo() {
  34. uni.pageScrollTo({
  35. scrollTop: 100,
  36. duration: 300,
  37. success: () => {
  38. console.log('success')
  39. },
  40. })
  41. },
  42. scrollToElement() {
  43. uni.pageScrollTo({
  44. selector: '.custom-element',
  45. duration: 300,
  46. success: () => {
  47. console.log('success')
  48. },
  49. })
  50. },
  51. },
  52. }
  53. </script>
  54. <style>
  55. .list-item {
  56. height: 100px;
  57. padding-left: 30px;
  58. }
  59. </style>