Created
September 1, 2010 23:13
-
-
Save nlacasse/561559 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
overlord.js (content script) | |
============================ | |
/** | |
* Adds event listeners to the window to detect mousemoves and moves the iframe | |
* corespondingly. | |
*/ | |
IframeOverlord.prototype.startDrag = function(params) { | |
var overlord = this; | |
// location of click inside iframe | |
var mousedown_event = { | |
screenX: params.x, | |
screenY: params.y | |
}; | |
// initial location of mouseclick | |
var left = $(this.iframeNode).offset().left; | |
var top = $(this.iframeNode).offset().top; | |
var scroll_x = window.scrollX; | |
var scroll_y = window.scrollY; | |
var handler = function (mousemove_event) { | |
// calculate new iframe position | |
var delta_x = (mousemove_event.screenX + window.scrollX) - | |
(mousedown_event.screenX + scroll_x); | |
var delta_y = (mousemove_event.screenY + window.scrollY) - | |
(mousedown_event.screenY + scroll_y); | |
$(overlord.iframeNode).offset({ | |
left: left + delta_x, | |
top: top + delta_y | |
}); | |
}; | |
overlord.addCaptureDiv(); | |
window.addEventListener('mousemove', handler, true); | |
window.addEventListener('DOMMouseScroll', handler, true); | |
window.addEventListener( | |
'mouseup', | |
function (mouseup_event) { | |
overlord.removeCaptureDiv(); | |
window.removeEventListener('mousemove', handler, true); | |
window.removeEventListener('DOMMouseScroll', handler, true); | |
window.removeEventListener('mouseup', arguments.callee, true); | |
}, | |
true | |
); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment