Tag Preview

Show tags on hover.

Versione datata 27/03/2019. Vedi la nuova versione l'ultima versione.

  1. // ==UserScript==
  2. // @name Tag Preview
  3. // @version 1.32
  4. // @description Show tags on hover.
  5. // @author Hauffen
  6. // @include /https?:\/\/(e-|ex)hentai\.org\/.*/
  7. // @require https://code.jquery.com/jquery-3.3.1.min.js
  8. // @namespace https://greasyfork.org/users/285675
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. var $tagP = $('<div id="tagPreview">');
  13. $tagP.css({
  14. position:'absolute',
  15. zIndex: '2',
  16. visiblility:'hidden',
  17. maxWidth: '400px',
  18. background: $('.ido').css("background"),
  19. border:'1px solid #000',
  20. padding: '10px'
  21. });
  22. $tagP.appendTo("body");
  23.  
  24. var element;
  25. if(document.getElementsByTagName("select").length === 0) {
  26. return;
  27. }
  28.  
  29. switch(document.getElementsByTagName("select")[0].selectedIndex){
  30. case 0:
  31. element = ".gl3m a";
  32. break;
  33. case 1: // delete this case if you don't want it on compact view.
  34. element = ".gl3c a";
  35. break;
  36. default:
  37. element = ".gl3t a";
  38. break;
  39. }
  40.  
  41. $('.itg').on('mouseover', `${element}`, function(e) {
  42. if(document.getElementById('tagPreview').children.length > 2) {
  43. document.getElementById('tagPreview').innerHTML = "Loading...";
  44. $tagP.empty();
  45. }
  46. var $content = $('<div>');
  47. $content.load(this.href, function() {
  48. document.getElementById('tagPreview').innerHTML = $('#gd2', this).html() + $('#taglist', this).html();
  49.  
  50. var posY, posX = (e.pageX + 432 < screen.width) ? e.pageX + 10 : e.pageX - 412;
  51. var scrollHeight = $(document).height();
  52. var scrollPosition = $(window).height() + $(window).scrollTop();
  53.  
  54. if ((scrollHeight - scrollPosition) < (scrollHeight / 10)) {
  55. posY = (e.pageY + 300 < scrollHeight) ? e.pageY + 10 : e.pageY - 300;
  56. } else {
  57. posY = e.pageY + 10;
  58. }
  59.  
  60. $tagP.css({
  61. left: posX,
  62. top: posY,
  63. border: '1px solid ' + window.getComputedStyle(document.getElementsByTagName("a")[0]).getPropertyValue("color"),
  64. visibility: 'visible'
  65. });
  66. });
  67. }).on('mousemove', `${element}`,function(e) {
  68. var posY, posX = (e.pageX + 432 < screen.width) ? e.pageX + 10 : e.pageX - 412;
  69. var scrollHeight = $(document).height();
  70. var scrollPosition = $(window).height() + $(window).scrollTop();
  71.  
  72. if ((scrollHeight - scrollPosition) < (scrollHeight / 10)) {
  73. posY = (e.pageY + document.getElementById('tagPreview').offsetHeight < window.innerHeight) ? e.pageY + 10 : e.pageY - 10 - document.getElementById('tagPreview').offsetHeight;
  74. } else {
  75. posY = e.pageY + 10;
  76. }
  77.  
  78. $tagP.css({
  79. visibility:'visible',
  80. top: posY,
  81. left: posX
  82. });
  83. }).on('mouseout', `${element}`, function() {
  84. $tagP.css({
  85. visibility:'hidden'
  86. });
  87. document.getElementById('tagPreview').innerHTML = "Loading...";
  88. $tagP.empty();
  89. });
  90.  
  91. $(document).on('scroll', function() {
  92. document.getElementById('tagPreview').style.visibility = 'hidden';
  93. });
  94. })();