index.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <view class="u-demo">
  3. <view class="u-demo-wrap">
  4. <view class="u-demo-title">演示效果</view>
  5. <view class="u-demo-area">
  6. <u-toast ref="uToast"></u-toast>
  7. <u-sticky :offset-top="offsetTop" :enable="enable" @fixed="fixed" @unfixed="unfixed">
  8. <view class="sticky">
  9. 宝剑锋从磨砺出,梅花香自苦寒来
  10. </view>
  11. </u-sticky>
  12. </view>
  13. </view>
  14. <view class="u-config-wrap">
  15. <view class="u-config-title u-border-bottom">
  16. 参数配置
  17. </view>
  18. <view class="u-config-item">
  19. <view class="u-item-title">吸顶高度</view>
  20. <u-subsection :list="[0, 120, 200]" @change="offsetTopChange"></u-subsection>
  21. </view>
  22. <view class="u-config-item">
  23. <view class="u-item-title">状态</view>
  24. <u-subsection :list="['允许吸顶', '禁止吸顶']" @change="enableChange"></u-subsection>
  25. </view>
  26. </view>
  27. </view>
  28. </template>
  29. <script>
  30. export default {
  31. data() {
  32. return {
  33. offsetTop: 0,
  34. enable: true,
  35. }
  36. },
  37. methods: {
  38. offsetTopChange(index) {
  39. this.offsetTop = index == 0 ? 0 : index == 1 ? 120 : 200;
  40. uni.pageScrollTo({
  41. scrollTop: 0,
  42. duration: 0
  43. })
  44. },
  45. enableChange(index) {
  46. this.enable = index == 0 ? true : false;
  47. },
  48. fixed() {
  49. this.$refs.uToast.show({
  50. type: 'warning',
  51. title: '触发吸顶'
  52. })
  53. },
  54. unfixed() {
  55. this.$refs.uToast.show({
  56. type: 'success',
  57. title: '取消吸顶'
  58. })
  59. }
  60. }
  61. }
  62. </script>
  63. <style lang="scss" scoped>
  64. .u-demo-area {
  65. overflow: hidden;
  66. }
  67. .u-config-wrap {
  68. height: 200vh;
  69. }
  70. .u-demo-title {
  71. margin-bottom: 140rpx;
  72. }
  73. .sticky {
  74. background-color: $u-type-primary;
  75. color: #fff;
  76. padding: 24rpx;
  77. margin: auto;
  78. font-size: 28rpx;
  79. line-height: 1;
  80. border-radius: 5px;
  81. }
  82. </style>