Bart Lewis
2007-Oct-04 17:08 UTC
Getting mouse position from a timed function - My Solution
EDIT: I originally wrote this as a response to this thread (http://
groups.google.com/group/rubyonrails-spinoffs/browse_thread/thread/
a735c534f89fc5cf/8d8546811cae5ee8), but it wouldn''t let me respond
that that thread (presumably because of it''s age). Rather than just
throw it away, I figured I''d post it here in case in can help anyone
else.
I built a little class to help me do just that. Here is my
implementation: (using Prototype 1.6)
var pointerTracker = Class.create({
initialize: function(){
this.x = null;
this.y = null;
this.bodyEl = $(document.body);
//Bind event listener.
this.boundUpdatePosition this.updatePosition.bindAsEventListener(this);
this.start();
},
updatePosition: function(event){
this.x = event.pointerX();
this.y = event.pointerY();
},
start: function(){
this.bodyEl.observe(''mousemove'', this.boundUpdatePosition);
},
stop: function(){
this.bodyEl.stopObserving(''mousemove'',
this.boundUpdatePosition);
},
within: function(element){
//is the cursor within the given element? Return bool
var el = $(element);
var vpo = el.viewportOffset();
return (this.x > vpo[0] &&
this.x < vpo[0] + el.getWidth() &&
this.y > vpo[1] &&
this.y < vpo[1] + el.getHeight());
}
});
Once you have that included in your page, you can use it like this...
//Start capturing mouse position.
var pointer = new pointerTracker();
//Close the toolbar if the mouse is not hovering over it. Check ever 3
seconds.
new PeriodicalExecuter(function(pe){
if (!pointer.within(''tool-bar'')){
pe.stop();
pointer.stop();
$(''tool-bar'').hide(); //Close the toolbar!
}
}, 3);
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
Apparently Analagous Threads
- Event listener problems
- Model studies in one analysis using treatment as a five level moderator in a meta-regression
- draganddrop mousemove event question
- Model studies in one analysis using treatment as a five level moderator in a meta-regression
- Model studies in one analysis using treatment as a five level moderator in a meta-regression
