From 01b1c377b1fea841b9823a3134e8f41ccc4b0f29 Mon Sep 17 00:00:00 2001 From: Jessica <46502909+hyenagirl64@users.noreply.github.com> Date: Sat, 20 Apr 2019 19:47:39 -0700 Subject: Animate avatar GIFs on-hover on public profiles (#10549) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Third time is the charm? * Use full asset URL for data-static and data-original ̀image_tag` expands to the full asset URL, we have to do the same in `data` attributes so that it can work when assets and user data are stored on a different host --- app/javascript/packs/public.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'app/javascript/packs/public.js') diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index 6a8cf9c2f..93379cdb3 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -173,6 +173,21 @@ function main() { avatar.src = url; }); + const getProfileAvatarAnimationHandler = (swapTo) => { + //animate avatar gifs on the profile page when moused over + return ({ target }) => { + const swapSrc = target.getAttribute(swapTo); + //only change the img source if autoplay is off and the image src is actually different + if(target.getAttribute('data-autoplay') === 'false' && target.src !== swapSrc) { + target.src = swapSrc; + } + }; + }; + + delegate(document, 'img#profile_page_avatar', 'mouseover', getProfileAvatarAnimationHandler('data-original')); + + delegate(document, 'img#profile_page_avatar', 'mouseout', getProfileAvatarAnimationHandler('data-static')); + delegate(document, '#account_header', 'change', ({ target }) => { const header = document.querySelector('.card .card__img img'); const [file] = target.files || []; -- cgit