2013-05-16 69 views
1

我想弄清楚如何Facebook下面的人突出顯示標記。在文本字段中的CSS,所以文本被刪除作爲一個字

我有一個<textarea>和我想要的是,當我按下退格時,全名被刪除。

而且我也希望名稱以藍色突出顯示(但這個很簡單)。

這可以很容易地通過css?或者我必須使用某種javascript刪除的東西工作?

TLDR:我需要一個jQuery函數刪除高亮顯示的那個名字,當我按back..that的一切,不需要自動完成與此類

enter image description here

+0

CSS用於造型,不是爲數據/事件處理。你需要JavaScript。在那張紙上,是的,這是可能的。使用jquery並捕獲keydown/keyup或keypress事件,檢查它的退格鍵,然後移除,直到找到空格爲止。突出顯示也不難,擁有類風格,並且將該類添加到單詞中,您還可以使用jquery添加該單詞,這可能就足夠了。 –

回答

1

你可以通過在所需文本背後添加絕對div來實現,並使背景對textarea透明。
這是我剛剛寫的一個snippet of code,它可能會幫助你。
我剛剛遇到一些問題,將正確的左側位置添加到突出顯示的div。

HTML:

<div class='container'> 
    <div class='highlighted'></div> 
    <textarea class='text_area'>hi my name is Ayman</textarea> 
</div> 

CSS:

.custom_table{ 
position: relative; 
width:600px; 
} 

.row{ 
position: relative; 
height:40px; 
background: #c80000; 
border-top:1px solid #fff; 
} 

.row div{ 
color:#fff; 
text-align: center; 
line-height:40px; 
} 
.row:hover .first, 
.row:hover .second, 
.row:hover .third, 
.row:hover .fourth{ 
background:#522D2D;; 
cursor:pointer; 
} 

.first{ 
position: absolute; 
left:0%; 
right:80%; 
height:40px; 
background: #00c800; 
} 

.second{ 
position: absolute; 
left:20%; 
right:60%; 
height:40px; 
background: #0000c8; 
} 

.third{ 
position: absolute; 
left: 40%; 
right: 25%; 
height: 40px; 
background: #BEBECF; 
} 

.fourth{ 
position: absolute; 
left: 75%; 
right: 0%; 
height: 40px; 
background: #D6182F; 
} 

JavsScript:

$(document).ready(function(e){ 
$('.text_area').bind('keypress', function(e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if (code == 64){ 
     $('.text_area').val($('.text_area').val()+" Ayman") 
     line = $('.text_area').val().substr(0, $('.text_area').selectionStart).split("\n").length; 
     var hl = $("<div class='highlighted'></div>"); 
     $(hl).css({'left':$('.text_area').getCursorPosition()+"px", 'top': ((line*14)-12)+"px"}) 
     $('.container').append($(hl)) 
    } 
}); 
}); 

(function ($, undefined) { 
$.fn.getCursorPosition = function() { 
    var el = $(this).get(0); 
    var pos = 0; 
    if('selectionStart' in el) { 
     pos = el.selectionStart; 
    } else if('selection' in document) { 
     el.focus(); 
     var Sel = document.selection.createRange(); 
     var SelLength = document.selection.createRange().text.length; 
     Sel.moveStart('character', -el.value.length); 
     pos = Sel.text.length - SelLength; 
    } 
    return pos; 
} 
})(jQuery); 
+0

js是什麼?它似乎不工作 – adit

+0

爲高亮顯示的div添加正確的位置 –

相關問題