2010-06-17 54 views

回答

1

唯一我能想到的一定程度上可靠的方法是這樣的:

  1. 創建<span>屏幕外(絕對定位向左邊的方向)
  2. 給我t與輸入元素相同的字體特徵。
  3. 不斷從輸入元素插入符之前的文本填充它
  4. 使用JavaScript庫中查找離屏幕跨度
  5. 用它來確定的像素寬度在插入符號是相對於左輸入元素的一側。

給它一個鏡頭,我很想聽聽它是如何發生的。

+0

好吧, 讓我試試看。 – 2010-06-17 09:24:26

+0

@WindChimez我有和你一樣的問題。你解決了這個問題嗎?我希望你做到了!自從你提出這個問題已經有3年了。 – 2013-02-18 06:40:23

0

這給一個鏡頭:

$(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}); 
    }); 
});​ 

幹活例如:http://jsbin.com/ibowa3/edit

+0

感謝您快速轉身看看我的查詢。 但是,它似乎不是正確的。 在鏈接中給出的例子中,如果我們繼續在textarea中輸入(不改變鼠標),可以看到x和y沒有變化,儘管光標正在移動它的位置。 我們需要考慮鼠標在這種情況下根本不存在 – 2010-06-17 06:33:12

+0

事實上,我自己也嘗試了代碼,它不會幫助。 IT人員在鼠標移動時獲得x,y,然後在鍵盤上獲得相同的結果。 – 2010-06-17 06:40:10

+0

我並沒有把你當好,所以對不起。我不認爲你可以做到這一點不幸。你** **能夠得到'caret position',但我不知道如何根據它獲得相對/絕對屏幕x/y座標。 – jAndy 2010-06-17 06:45:51

0

您可以使用event.pagex,LayerX,clientX,screenX是獲取光標位置DOM的超級函數。 這是一個簡單的教程get mouse position