numKeysJumpTo.js 1020 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. (() => {
  2. const timeSteps = 9; // excluding 0
  3. function getX(timeKey, maxWidth) {
  4. if(timeKey >= timeSteps)
  5. return maxWidth;
  6. return Math.floor(maxWidth / timeSteps) * timeKey;
  7. }
  8. console.log("scrollY", window.scrollY);
  9. const elem = document.querySelector("tp-yt-paper-progress#sliderBar");
  10. const rect = getOffset(elem);
  11. const x = getX(1, rect.width);
  12. const y = rect.top - rect.height / 2;
  13. console.log(x, y, rect);
  14. const evt = new MouseEvent("mousedown", {
  15. clientX: x,
  16. clientY: y,
  17. target: elem,
  18. bubbles: true,
  19. view: window,
  20. });
  21. elem.dispatchEvent(evt);
  22. function getOffset(el) {
  23. var _x = 0;
  24. var _y = 0;
  25. const rect = el.getBoundingClientRect();
  26. console.log("rect", rect);
  27. while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
  28. _x += el.offsetLeft - el.scrollLeft;
  29. _y += el.offsetTop - el.scrollTop;
  30. el = el.offsetParent;
  31. }
  32. return { top: _y, left: _x, width: rect.width, height: rect.height };
  33. }
  34. })();