как сделать 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