html的输入框加序号,JS给Textarea文本框添加行号的方法

本文实例讲述了JS给Textarea文本框添加行号的方法。分享给大家供大家参考。具体如下:

这里使用JS实现让Textarea文本框显示行号的功能,每一行的前面都会有下数字序号,如果用来显示代码的话,可以直接找到某一行,如果不显示行号,则还要自己手功去查,想要此功能,你只需设置好TextArea ID,并加入代码中的JavaScript代码部分即可,文本框的长宽则是由CSS来控制的,你可试着修改一下,长宽的显示要与JS相匹配。

运行效果截图如下:

e2ad6211366eef22d695ed597bf86cd0.png

在线演示地址如下:

具体代码如下:

Js给文本框添加行号功能

#codeTextarea{width: 500px;height: 310px;}

.textAreaWithLines{font-family: courier;border: 1px solid #ddd;}

.textAreaWithLines textarea,.textAreaWithLines div{border: 0px;line-height: 120%;font-size: 12px;}

.lineObj{color: #666;}

var lineObjOffsetTop = 2;

function createTextAreaWithLines(id)

{

var el = document.createElement('DIV');

var ta = document.getElementById(id);

ta.parentNode.insertBefore(el,ta);

el.appendChild(ta);

el.className='textAreaWithLines';

el.style.width = (ta.offsetWidth + 30) + 'px';

ta.style.position = 'absolute';

ta.style.left = '30px';

el.style.height = (ta.offsetHeight + 2) + 'px';

el.style.overflow='hidden';

el.style.position = 'relative';

el.style.width = (ta.offsetWidth + 30) + 'px';

var lineObj = document.createElement('DIV');

lineObj.style.position = 'absolute';

lineObj.style.top = lineObjOffsetTop + 'px';

lineObj.style.left = '0px';

lineObj.style.width = '27px';

el.insertBefore(lineObj,ta);

lineObj.style.textAlign = 'right';

lineObj.className='lineObj';

var string = '';

for(var no=1;no<20;no++){

if(string.length>0)string = string + '
';

string = string + no;

}

ta.onkeydown = function() { positionLineObj(lineObj,ta); };

ta.onmousedown = function() { positionLineObj(lineObj,ta); };

ta.onscroll = function() { positionLineObj(lineObj,ta); };

ta.onblur = function() { positionLineObj(lineObj,ta); };

ta.onfocus = function() { positionLineObj(lineObj,ta); };

ta.onmouseover = function() { positionLineObj(lineObj,ta); };

lineObj.innerHTML = string;

}

function positionLineObj(obj,ta)

{

obj.style.top = (ta.scrollTop * -1 + lineObjOffsetTop) + 'px';

}

createTextAreaWithLines('codeTextarea');

希望本文所述对大家的javascript程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值