1 line
1.2 KiB
JavaScript
1 line
1.2 KiB
JavaScript
(function(){document.addEventListener('click',function(e){var card=e.target.closest('.lp-md3-card');if(!card)return;createRipple(e,card);var url=card.getAttribute('data-href');if(url){setTimeout(function(){window.open(url,'_blank','noopener')},100)}});document.addEventListener('keydown',function(e){var card=e.target.closest('.lp-md3-card');if(!card)return;if(e.key==='Enter'||e.key===' '){e.preventDefault();var url=card.getAttribute('data-href');if(url)window.open(url,'_blank','noopener')}});function createRipple(event,card){var container=card.querySelector('.lp-md3-ripple-container');if(!container)return;var circle=document.createElement('span');var diameter=Math.max(card.clientWidth,card.clientHeight);var radius=diameter/2;var rect=card.getBoundingClientRect();var x=(event.clientX?event.clientX:rect.left+rect.width/2)-rect.left;var y=(event.clientY?event.clientY:rect.top+rect.height/2)-rect.top;circle.style.width=circle.style.height=diameter+'px';circle.style.left=(x-radius)+'px';circle.style.top=(y-radius)+'px';circle.classList.add('lp-md3-ripple');var old=container.getElementsByClassName('lp-md3-ripple')[0];if(old){old.remove()}container.appendChild(circle);setTimeout(function(){circle.remove()},600)}})(); |