Advertisement
Guest User

2ch.hk Chrome video player click pause fix

a guest
May 9th, 2019
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     // Вопросы/баги/техподдержка/обучение-бесплатно: github.com/catamphetamine
  3.  
  4.     var isDraggingVideo = false
  5.     var isClickingVideo = false
  6.     var video
  7.     var videoClickX
  8.     var videoClickY
  9.     var DRAG_THRESHOLD = 4
  10.     var removeVideoClickListener
  11.  
  12.     function cancelVideoClick(event) {
  13.         event.preventDefault()
  14.         removeVideoClickListener()
  15.     }
  16.  
  17.     function onMouseDown(event) {
  18.         if (event.target.tagName === 'VIDEO') {
  19.             isClickingVideo = true
  20.             video = event.target
  21.             videoClickX = event.clientX
  22.             videoClickY = event.clientY
  23.         }
  24.     }
  25.  
  26.     function onMouseUp(event) {
  27.         if (isClickingVideo) {
  28.             reset()
  29.         }
  30.     }
  31.  
  32.     function onMouseMove(event) {
  33.         if (isClickingVideo && !isDraggingVideo) {
  34.             if (Math.abs(event.clientX - videoClickX) > DRAG_THRESHOLD ||
  35.                 Math.abs(event.clientY - videoClickY) > DRAG_THRESHOLD) {
  36.                 isDraggingVideo = true
  37.                 video.addEventListener('click', cancelVideoClick)
  38.                 removeVideoClickListener = (function(video) {
  39.                     return function() {
  40.                         video.removeEventListener('click', cancelVideoClick)
  41.                         removeVideoClickListener = undefined
  42.                     }
  43.                 })(video)
  44.             }
  45.         }
  46.     }
  47.  
  48.     function reset() {
  49.         isDraggingVideo = false
  50.         isClickingVideo = false
  51.         video = undefined
  52.         videoClickX = undefined
  53.         videoClickY = undefined
  54.     }
  55.  
  56.     window.addEventListener('mousedown', onMouseDown)
  57.     window.addEventListener('mouseup', onMouseUp)
  58.     window.addEventListener('mousemove', onMouseMove)
  59.  
  60.     console.log('Заплатка для видеоплеера активирована')
  61.  
  62.     return function() {
  63.         reset()
  64.         if (removeVideoClickListener) {
  65.             removeVideoClickListener()
  66.         }
  67.         window.removeEventListener('mousedown', onMouseDown)
  68.         window.removeEventListener('mouseup', onMouseUp)
  69.         window.removeEventListener('mousemove', onMouseMove)
  70.     }
  71. })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement