From 1435812436943b115bdcc2e29987a5d3b2c2e199 Mon Sep 17 00:00:00 2001 From: Vince Valenti <vince@blue-box.net> Date: Sat, 28 Nov 2015 20:15:31 -0800 Subject: [PATCH] When posters are small, display a hover popout --- gui/slick/js/core.js | 60 +++++++++++++++++++++++++++++++++++++++ gui/slick/js/core.min.js | Bin 67169 -> 67962 bytes 2 files changed, 60 insertions(+) diff --git a/gui/slick/js/core.js b/gui/slick/js/core.js index 373adf47b..ca1c24557 100644 --- a/gui/slick/js/core.js +++ b/gui/slick/js/core.js @@ -1810,6 +1810,9 @@ var SICKRAGE = { borderWidth = 6; } + // If there's a poster popup, remove it before resizing + $('#posterPopup').remove(); + if (fontSize === undefined) { $('.show-details').hide(); } else { @@ -1976,6 +1979,63 @@ var SICKRAGE = { } } }); + + // When posters are small enough to not display the .show-details + // table, display a larger poster when hovering. + var posterHoverTimer = null; + $('.show-container').on('mouseenter', function () { + var poster = $(this); + if (poster.find('.show-details').css('display') !== 'none') { + return; + } + posterHoverTimer = setTimeout(function () { + posterHoverTimer = null; + $('#posterPopup').remove(); + var popup = poster.clone().attr({ + id: 'posterPopup' + }); + var origLeft = poster.offset().left; + var origTop = poster.offset().top; + popup.css({ + position: 'absolute', + margin: 0, + top: origTop, + left: origLeft + }); + popup.find('.show-details').show(); + popup.on('mouseleave', function () { + $(this).remove(); + }); + popup.zIndex(9999); + popup.appendTo('body'); + + var height = 438, width = 250; + var newTop = (origTop+poster.height()/2)-(height/2); + var newLeft = (origLeft+poster.width()/2)-(width/2); + + // Make sure the popup isn't outside the viewport + var margin = 5; + var scrollTop = $(window).scrollTop(); + var scrollLeft = $(window).scrollLeft(); + var scrollBottom = scrollTop + $(window).innerHeight(); + var scrollRight = scrollLeft + $(window).innerWidth(); + if (newTop < scrollTop+margin) { newTop = scrollTop+margin; } + if (newLeft < scrollLeft+margin) { newLeft = scrollLeft+margin; } + if (newTop+height+margin > scrollBottom) { newTop = scrollBottom-height-margin; } + if (newLeft+width+margin > scrollRight) { newLeft = scrollRight-width-margin; } + + popup.animate({ + top: newTop, + left: newLeft, + width: 250, + height: 438 + }); + }, 300); + }).on('mouseleave', function () { + if (posterHoverTimer !== null) { + clearTimeout(posterHoverTimer); + } + }); }); $('#postersort').on('change', function(){ diff --git a/gui/slick/js/core.min.js b/gui/slick/js/core.min.js index 9490f62aa9fe1b7a577df56357361d78cc49f332..01fceaea955eaee788560d372e33a918b79d996f 100644 GIT binary patch delta 772 zcmaFZ!}4nq%Lehqk}4WX$_4qwC8<RL`30o~N}75_sk!-OsT!L_7f18fTbCskDJ0tF zmFDDFt7s_c6=&p^>n7*tl_X~7r4}h^>gDHYDCOpt7N@4>m82Fa>7<qBC6{F8=V@qG zgR~~us%VsCWEN{$E9K?qr7GFl+9v6xW#*;8%t}cuNzBYCR?^f<E-uzkO35rP$VseJ z(o|E^NVF}U+#oDk53ybcr%N@#j!d>q(o4?C&r8+N)JrTWDblFUOtDfz_FAo`PKs@k zUVd6yacYT%re02JT8U07vPemOfps$2A=L%>#hD;~SSe{FCKc!Bl$N9_>EtFBrDx_@ z8R(Sc7g(k0fDEuosnyg;2776;-C{|BWJHMMq$ZZ7P8Q%7o!rmNR<EH6R#@ekmy%kc zVQFb;3DTEXP>`CJ5|Xc>l$4)RsRZ##nyrbkg-*Jyk*R@BhHa{Ll3qq?W_m`6hNixe zZkoQ4PNr>&c9LFsW=cs0SS(%NNGHqIR43b3MWZ}3FD1WRQ?EF=C_g7BB)>pIQzyq( zr5;VfCpE1^LsKW$Hd`B^Co?ZEwa5c%mrkB-4!T@8#7gUI?JT<tH8qV4+idMDO`RO= zEW1oKHH}Q$91u4{J54*wE*C7HtDB~qrKyuyubr-)WtRt5l&6~x5=+)g%*)J8EJ@X< z28Cw^Bs?>9!2YrVdmii*D-&ajTFqJ=V*>+C&03@+2M%DABnL{Ting|iYHG<jsfk4) inYpR?r6n4PnzftrH@LbpS#xdP^8Fdp=GniFaRUH)ApvLr delta 31 ocmex0iREDr%Lehqn~fGn@^0?f?Bc%p+^=U$j9i<y{5{4E0QK?@b^rhX -- GitLab