Skip to content

Instantly share code, notes, and snippets.

@nlacasse
Created September 1, 2010 23:13
Show Gist options
  • Save nlacasse/561559 to your computer and use it in GitHub Desktop.
Save nlacasse/561559 to your computer and use it in GitHub Desktop.
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