How can i get current x & y position of my CURSOR within a text area using javascript. The event is a Keyup event, not a mouse event.
I am not looking for the c开发者_JAVA百科urrent cursor position in terms of charecter but x , y coordinates.
The only somewhat reliable method I can think of is this:
- Create a
<span>
offscreen (absolutely positioned way to the left) - Give it the same font characteristics as the input element.
- Continuously populate it with the text from the input element but before the caret
- Use a javascript library to find the pixel width of the offscreen span
- Use that to determine where the caret is relative to the left side of the input element.
Give it a shot, I'd love to hear how it turns out.
Give this a shot:
$(document).ready(function(){
$('textarea').bind('keyup', function(e){
var $this = $(this);
alert('X: ' + $this.data('mousepos').x + '\nY: ' + $this.data('mousepos').y);
});
$('textarea').bind('mousemove', function(e){
$(e.target).data('mousepos', {x: e.pageX, y: e.pageY});
});
});
workin example: http://jsbin.com/ibowa3/edit
精彩评论