你喜欢文本样式
Youtrack like text styling
我想样式我的输入文本字段的方式,如果我在输入字段中键入两个单词,第一个单词的下边框是黑色的,第二个单词的下边框是红色的(类似于你的轨道)。欢迎有任何提示
好吧。我为你准备了一个演示,因为我喜欢这个问题:D。它的实现很糟糕,因为它不支持特殊键,但这对你来说肯定是一个起点。
这是js提琴。http://jsfiddle.net/madterry/jwq53/
HTML: Enter :<div id="madText" contenteditable="true"></div>
CSS: #madText {
border-left: 1px solid darkgray;
font: -moz-field;
font: -webkit-small-control;
padding: 2px 3px;
width: 398px;
}
jQuery: $('#madText').on('keyup',function(e){
e.preventDefault();
//Find all child span & replace with text
$(this).find('span').each(function() {
$(this).replaceWith($(this).text());
});
//Find all words
var words = $(this).html().trim().split(' ');
//Clear the data
$(this).html('');
//for all words
for (i = 0; i < words.length; i++){
//Even odd game :D
if ((i+1)%2 == 0) {
$(this).append(' <span style="border-bottom: 3px solid;border-bottom-color:red;">' + words[i] + '</span>');
} else {
$(this).append(' <span style="border-bottom: 3px solid;border-bottom-color:green;">' + words[i] + '</span>');
}
}
//Set cursor to end
if($(this).find('span').length>0) setCursorToEnd($(this).find('span').last()[0]);
return false;
});
//Foun it on google :D
function setCursorToEnd(ele)
{
var range = document.createRange();
var sel = window.getSelection();
range.setStart(ele, 1);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
ele.focus();
}
相关文章:
- 具有所有样式的文本正在复制到可编辑文本区域
- 将Div内容复制到文本区域或具有相同字体族样式的文本
- 为未标记的文本添加CSS样式
- 尝试在随机文本和图像脚本中添加样式/更改字体
- HTML + JS:设置文本区域内容样式的最佳方式
- 如何更改列表中一个元素中的文本样式
- 如何检查与显示:无样式相关的文本内容
- 如何使用 JavaScript 将样式应用于 CKEditor 中的选定文本
- 输入占位符文本转换CSS样式
- 如何优化动态生成多列文本样式
- GWT:如何从当前光标位置或所选文本中获取css样式的属性
- 用于丢失文本样式的脚注的Indesign脚本
- Jquery 在 ASP 文本框上添加样式不起作用
- 如何更改chardin.js中的文本颜色和样式
- 为HTML文本区域设置标题属性的样式
- 遵循 jquery Mobile 的文本框样式
- 将样式添加到文本区域的特定行
- 多语言丢失文本样式
- 将文本区域样式化,使其看起来像单独的输入框
- javascript中的换行/样式文本