ButtonZoom.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div class="btn-zoom">
  3. <b-button
  4. variant="dark"
  5. class="btn-zoom-item"
  6. @click="$emit('zoom', 1)"
  7. :disabled="value >= maxZoom"
  8. >
  9. <span>+</span>
  10. </b-button>
  11. <b-button
  12. variant="dark"
  13. class="btn-zoom-item"
  14. @click="$emit('zoom', -1)"
  15. :disabled="value <= minZoom"
  16. >
  17. <span>–</span>
  18. </b-button>
  19. </div>
  20. </template>
  21. <script>
  22. export default {
  23. name: 'ButtonZoom',
  24. props: {
  25. value: { type: Number, required: true },
  26. minZoom: { type: Number, required: true },
  27. maxZoom: { type: Number, required: true }
  28. }
  29. }
  30. </script>
  31. <style lang="scss" scoped>
  32. .btn-zoom {
  33. position: absolute;
  34. top: 9px;
  35. right: 9px;
  36. @include media-breakpoint-up($size-bp) {
  37. top: 24px;
  38. right: 24px;
  39. }
  40. }
  41. .btn-zoom-item {
  42. display: block;
  43. width: $btn-size;
  44. height: $btn-size;
  45. padding: 0;
  46. border: 0;
  47. font-size: 1.7rem;
  48. line-height: 1;
  49. margin: 6px;
  50. span {
  51. position: relative;
  52. top: -3px;
  53. }
  54. &:hover:not(.disabled),
  55. &:focus:not(.disabled) {
  56. color: $black;
  57. background-color: $white;
  58. border: 3px solid $black;
  59. span {
  60. top: -6px;
  61. }
  62. }
  63. }
  64. </style>