Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. <template>
  2. <div class="relative" v-click-outside="closeDropdown">
  3. <slot name="button" v-bind:toggle="toggle"></slot>
  4. <transition
  5. enter-active-class="transition-all transition-fastest ease-out-quad"
  6. leave-active-class="transition-all transition-faster ease-in-quad"
  7. enter-class="opacity-0 scale-70"
  8. enter-to-class="opacity-100 scale-100"
  9. leave-class="opacity-100 scale-100"
  10. leave-to-class="opacity-0 scale-70"
  11. >
  12. <div v-if="open" class="absolute origin-top-right w-full right-0" style="min-width: 200px;">
  13. <div class="bg-white rounded shadow overflow-hidden">
  14. <slot name="dropdown"></slot>
  15. </div>
  16. </div>
  17. </transition>
  18. </div>
  19. </template>
  20.  
  21. <script>
  22. export default {
  23. data() {
  24. return {
  25. open: false,
  26. }
  27. },
  28.  
  29. events: {
  30. closeDropdown(event) {
  31. this.open = false;
  32. }
  33. },
  34.  
  35. methods: {
  36. toggle() {
  37. this.open = !this.open;
  38. },
  39.  
  40. closeDropdown(event) {
  41. this.open = false;
  42. },
  43. },
  44. }
  45. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement