SimpleScrollView.vue 814 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <template>
  2. <div
  3. :class="[
  4. 'nana-scroll-view',
  5. scrollX ? 'x' : '',
  6. scrollY ? 'y' : ''
  7. ]"
  8. >
  9. <slot />
  10. </div>
  11. </template>
  12. <script lang="ts" setup>
  13. /**
  14. * 组件说明:可滚动的容器。
  15. */
  16. const props = defineProps({
  17. scrollX: {
  18. type: Boolean,
  19. default: false
  20. },
  21. scrollY: {
  22. type: Boolean,
  23. default: false
  24. }
  25. })
  26. </script>
  27. <style lang="scss" scoped>
  28. .nana-scroll-view {
  29. overflow: hidden;
  30. &::-webkit-scrollbar {
  31. width: 5px;
  32. height: 5px;
  33. }
  34. &::-webkit-scrollbar-thumb {
  35. background: #d6d6d6;
  36. opacity: .7;
  37. border-radius: 3px;
  38. &:hover {
  39. background: #707070;
  40. }
  41. }
  42. &::-webkit-scrollbar-track {
  43. background: transparent;
  44. }
  45. &.x {
  46. overflow-x: scroll;
  47. }
  48. &.y {
  49. overflow-y: scroll;
  50. }
  51. }
  52. </style>