Tag Preview

Show tags on hover.

Stan na 25-03-2019. Zobacz najnowsza wersja.

  1. // ==UserScript==
  2. // @name Tag Preview
  3. // @version 1.22
  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. background: $('.ido').css("background"),
  64. border: '1px solid ' + window.getComputedStyle(document.getElementsByTagName("a")[0]).getPropertyValue("color"),
  65. visibility: 'visible'
  66. });
  67. });
  68. }).on('mousemove', `${element}`,function(e) {
  69. var posY, posX = (e.pageX + 432 < screen.width) ? e.pageX + 10 : e.pageX - 412;
  70. var scrollHeight = $(document).height();
  71. var scrollPosition = $(window).height() + $(window).scrollTop();
  72.  
  73. if ((scrollHeight - scrollPosition) < (scrollHeight / 10)) {
  74. posY = (e.pageY + document.getElementById('tagPreview').offsetHeight < window.innerHeight) ? e.pageY + 10 : e.pageY - 10 - document.getElementById('tagPreview').offsetHeight;
  75. } else {
  76. posY = e.pageY + 10;
  77. }
  78.  
  79. $tagP.css({
  80. visibility:'visible',
  81. top: posY,
  82. left: posX
  83. });
  84. }).on('mouseout', `${element}`, function() {
  85. $tagP.css({
  86. visibility:'hidden'
  87. });
  88. document.getElementById('tagPreview').innerHTML = "Loading...";
  89. $tagP.empty();
  90. });
  91. })();