как сделать v-ripple эффект как у vuetify

как передать кординаты в css или как это вообще реализованно в vuetify. достал кординаты клика по элементу но не знаю что дальше делать.

import Vue from 'vue'

Vue.directive('ripple', {
  inserted: (el, binding) => {
    el.addEventListener('click', (event) => {
      let localX = 0
      let localY = 0
      const element = el
      const offset = element.getBoundingClientRect()
      const target = event
      localX = target.clientX - offset.left
      localY = target.clientY - offset.top
      // element.style.position = 'relative'
      // const ripples = document.createElement('span')
      // ripples.className = 'ripples'
      // if (binding.value) {
      //   ripples.style.backgroundColor = binding.value
      // } else {
      //   ripples.style.backgroundColor = '#009688'
      // }
      // element.appendChild(ripples)

      // setTimeout(() => {
      //   ripples.remove()
      // }, 500)
    })
  },
})

комменты это старый код я ее реализовал так чтобы всегда эффект начинался с цента теперь нужно чтоб начинался с того место куда был сделать клик, Вот styles

span.ripples {
  position: absolute;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  animation: animate 0.5s linear infinite;
}
@keyframes animate {
  0% {
    width: 0;
    height: 0;
    opacity: 0.5;
  }
  100% {
    width: 500px;
    height: 500px;
    opacity: 0;
  }
}

Vuetify Ripple https://vuetifyjs.com/en/directives/ripple/#usage


Ответы (0 шт):