2014-01-25 24 views
0

我在textarea的頂部有一個標籤。keydown上的縮進textarea /點擊

當有人點擊的keydown「上textarea的S,我試圖讓文字去標籤的邊緣,所以它看起來像,實際上是textarea的開始的地方。

我現在所擁有的是它找到標籤的寬度,然後在文本區域的開頭添加適當數量的空格。

Firefox和Safari的標籤非常接近。但鉻增加了一些額外的空間。

任何人都可以幫助我找出更合適的方法嗎?

http://jsfiddle.net/3jGv7/2/

function cursorPosition(data) { 
    var labelWidth = $(data).siblings('[class=indent]').width(), 
     spaces = Math.round(labelWidth/3.6) + 1, 
     sVar = ""; 
    for (var x = 1; x <= spaces; x++) { 
     sVar += " "; 
    } 
    if (!data.value.match(/^[ ]{'+spaces+'}/)) { 
     data.value = sVar + data.value.replace(/^\s+/, ""); 
    } 
    if (data.selectionStart < spaces) { 
     data.selectionStart = spaces; 
    } 
} 

回答

3

你可以用CSS做:

text-indent: 165px; 

jsFiddle Demo

如果你想要一個jQuery版本:

var indentWidth = $('textarea.indent').prev('div.indent').width(); 
$('textarea.indent').css('text-indent', indentWidth+'px'); 

jsFiddle Demo

+0

非常棒@jammykam!這正是我所期待的。友達人 – bryan