JAVASCRIPT   74

mouse.js

Guest on 23rd July 2021 02:09:42 AM

  1. var mouseX, mouseY;
  2. var total = 0;
  3. var mapContainerPos;
  4. var tooltipFound;
  5.  
  6.  
  7. jQuery(document).ready(function () {
  8.     //return false;
  9.     jQuery('.map-c').on('mousemove click', function (e) {
  10. //        var x = microtime(true);
  11. //        total = 0;
  12.         if ((mouseX == e.clientX) & (mouseY == e.clientY)) {
  13.             //if mouse ccordinates hasn't changed, do nothing
  14.             return false;
  15.         } else {
  16.             mouseX = e.clientX;
  17.             mouseY = e.clientY;
  18.         }
  19.  
  20.  
  21.         tooltipFound = false;
  22. //        jQuery('.agent-c,.parstav').each(function () { //this appeared to be a bit slower
  23. //            checkIfMouseOverEl(this);
  24. //        });
  25.         var elements = jQuery('.agent-c,.parstav')
  26.         for (var i = 0; i < elements.length; i++) {
  27.             checkIfMouseOverEl(elements[i]);
  28.         }
  29.  
  30.         if (!tooltipFound) {
  31.             hideAllTooltips();
  32.         }
  33.  
  34.  
  35. //        console.log(total, 'total');
  36. //        console.log(microtime(true) - x, 'loop');
  37.  
  38. //        console.log(jQuery('.agent-c,.parstav').length);
  39.     });
  40. });
  41.  
  42. function checkIfMouseOverEl(el) {
  43.     var opa = [], elW, elH;
  44.  
  45. //    var x = microtime(true);
  46.  
  47.  
  48. //    var mapContainerPos = {top: 0, left: 0};
  49.  
  50. //    console.log(microtime(true) - x, 'mapContainerPos');
  51. //    var x = microtime(true);
  52.  
  53. //    var mapContainerPos = jQuery(el).parents('.map').offset();
  54.  
  55. //    console.log(mapContainerPos, 'mapContainerPos');
  56.  
  57.     if (jQuery(el).hasClass('agent-c')) {
  58.         allowedOffsetTop = 12;
  59.         allowedOffsetLeft = 12;
  60.         allowedOffsetBottom = 6;
  61.         allowedOffsetRight = 6;
  62.  
  63.         elW = 6;
  64.         elH = 6;
  65.     }
  66. //    console.log(microtime(true) - x, 'getdim-agent');
  67.  
  68. //    var x = microtime(true);
  69.     if (jQuery(el).hasClass('parstav')) {
  70.         allowedOffsetTop = 9;
  71.         allowedOffsetLeft = 9;
  72.         allowedOffsetBottom = 3;
  73.         allowedOffsetRight = 23;
  74.         elW = jQuery(el).width();
  75.         elH = jQuery(el).height();
  76.     }
  77.  
  78. //    console.log(microtime(true) - x, 'getdim-parstav');
  79.  
  80. //    var x = microtime(true);
  81.     var elPos = jQuery(el)[0].getBoundingClientRect();
  82. //    console.log(microtime(true) - x, 'getrect-mouse');
  83.  
  84.     var elX = elPos.left;
  85.     var elY = elPos.top;
  86. //    console.log(jQuery(el));
  87. //    console.log(elX, elY, 'calculated-elXY');
  88.  
  89.  
  90. //    elX = parseInt(jQuery(el).attr('data-x'));// + mapContainerPos.left;
  91.     //; //elPos.left;// - mapContainerPos.left;
  92. //    elY = parseInt(jQuery(el).attr('data-y'));// + mapContainerPos.top;
  93.     //; //elPos.left;//
  94. //    var elY = elPos.top;// - mapContainerPos.top;
  95.  
  96.  
  97.     //console.log(elX, elY, 'elXY');
  98. //    console.log(mouseX, mouseY, 'mouse');
  99.  
  100.  
  101. //    console.log(microtime(true) - x, 'offset');
  102. //    var x = microtime(true);
  103.  
  104.     if ((mouseX > elX - allowedOffsetLeft) & (mouseX < elX + elW + allowedOffsetRight) &
  105.             (mouseY > elY - allowedOffsetTop) & (mouseY < elY + elH + allowedOffsetBottom)) {
  106.         tooltipFound = true;
  107.         showTooltip(el);
  108.  
  109.         return false;
  110.  
  111.     } else {
  112. //        hideTooltip(el);
  113.     }
  114. //    console.log(microtime(true) - x, 'compare');
  115. //    console.log(microtime(true) - x, 'whole');
  116. //    total += microtime(true) - x;
  117.  
  118.  
  119. }

Raw Paste


Login or Register to edit or fork this paste. It's free.