Skip to content

Instantly share code, notes, and snippets.

@monjudoh
Forked from hitode909/newmouse.user.js
Created October 5, 2010 13:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monjudoh/611517 to your computer and use it in GitHub Desktop.
Save monjudoh/611517 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name newmouse
// @namespace http://www.hatena.ne.jp/hitode909
// @include *
// ==UserScript==
var Nears = function(x, y) {
this.centerX = x;
this.centerY = y;
this.i = 0;
}
Nears.prototype = {
getNext: function() {
this.i++;
var r = this.i / 3;
var t = this.i / 10;
var x = this.centerX + r * Math.cos(t);
var y = this.centerY + r * Math.sin(t);
return { x: x, y: y};
}
};
var Pointer = function() {
}
Pointer.prototype = {
setPoint: function(x, y, sx, sy) {
if (this._isSamePoint(x, y, sx, sy)) return;
if (this._isWorking()) this._clearPlot();
this.x = x;
this.y = y;
this.sx = sx;
this.sy = sy;
this.startPlot();
},
startPlot: function() {
var self = this;
this.nears = new Nears(this.x, this.y);
this._setPointerNormal();
this.timer = setInterval(function() {
for(var i = 0; i < 10; i++) {
var pos = self.nears.getNext();
var element = document.elementFromPoint(pos.x, pos.y);
self._plotPoint(self.sx + pos.x, self.sy + pos.y);
for(var j = 0; element && j < 3; j++) {
var tagName = element.tagName.toLowerCase();
if (["input", "a", "area", "iframe", "textarea", "button", "select"].indexOf(tagName) >= 0) {
self._focusElement(element);
self._setPointerMatched();
self._clearPlot();
return;
}
element = element.parentNode;
}
if (i == 0) self._unfocusElement(); // clear previous here to avoid blink
}
}, 0);
},
trigger: function(move, newTab) {
var target = this.focusedElement;
if (!target) return;
click(target);
if (document.querySelector(':focus') != target) target.focus();
// sendKey(target, 13);
if (move && target.href) {
if (newTab) {
window.open(target.href);
} else {
location.href = target.href;
}
}
},
// private
_focusElement: function(element) {
this._unfocusElement();
element.setAttribute('data-clicknear-focused', '1');
this.focusedElement = element;
},
_unfocusElement: function() {
if (!this.focusedElement) return;
this.focusedElement.removeAttribute('data-clicknear-focused');
this.focusedElement = null;
},
_clearPlot: function() {
clearInterval(this.timer);
this.timer = null;
},
_isWorking: function() {
return !!this.timer;
},
_isSamePoint: function(x, y, sx, sy) {
var diff = 0;
diff += Math.abs(this.x - x);
diff += Math.abs(this.y - y);
diff += Math.abs(this.sx - sx);
diff += Math.abs(this.sy - sy);
return diff < 4;
},
_plotPoint: function(x, y) {
if (!this.pointElement) return;
this.pointElement.setAttribute('style','z-index: 2147483647; position: absolute; left: ' + x + 'px; top: ' + y + 'px;');
},
_setPointerNormal: function() {
this.pointElement.firstChild.style.display = 'block';
this.pointElement.lastChild.style.display = 'none';
},
_setPointerMatched: function() {
this.pointElement.firstChild.style.display = 'none';
this.pointElement.lastChild.style.display = 'block';
}
};
// util
function click(target) {
["mouseup", "mousedown", "click"].forEach(function (type) {
var event = document.createEvent("MouseEvents");
event.initMouseEvent(type, true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
target.dispatchEvent(event);
});
}
function sendKey(target, code) {
["keydown", "keypress", "keyup"].forEach(function(type){
var event = document.createEvent("KeyboardEvent");
event.initKeyEvent(type, true, true, window,
false,false,false,false,code,1);
target.dispatchEvent(event);
});
}
// content script
(function() {
var pointer = new Pointer();
var step = function(event) {
pointer.setPoint(event.clientX, event.clientY, window.scrollX, window.scrollY);
};
document.body.addEventListener('mousemove',step, false);
document.body.addEventListener('scroll', step, false);
document.addEventListener('mouseup', function(event) {
if (["input", "a", "area", "iframe", "textarea", "button", "select"].indexOf(event.target.tagName.toLowerCase()) >= 0) return;
pointer.trigger(false);
}, false);
document.addEventListener('dblclick', function(event) {
if (["input", "a", "area", "iframe", "textarea", "button", "select"].indexOf(event.target.tagName.toLowerCase()) >= 0) return;
pointer.trigger(true, event.metaKey);
}, false);
var style = document.createElement('style');
document.body.appendChild(style);
style.textContent = [
"[data-clicknear-focused] {",
"background: yellow;",
"}"
].join("\n");
})();
// image
(function(){
var div = document.createElement('div');
with(div.style) {
zIndex = '2147483647';
position = 'absolute';
};
document.body.appendChild(div);
Pointer.prototype.pointElement = div;
})();
(function(){
var img = document.createElement('img');
img.src = 'data:image/png;base64,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';
// with(img.style) {
// zIndex = '2147483647';
// position = 'absolute';
// };
Pointer.prototype.pointElement.appendChild(img);
})();
(function(){
var img = document.createElement('img');
img.src = 'data:image/png;base64,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';
// with(img.style) {
// zIndex = '2147483647';
// position = 'absolute';
// };
Pointer.prototype.pointElement.appendChild(img);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment