JS给Textarea文本框添加行号的方法


Posted in Javascript onAugust 20, 2015

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

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

运行效果截图如下:

JS给Textarea文本框添加行号的方法

在线演示地址如下:

具体代码如下:

<html> 
<head>
<title>Js给文本框添加行号功能</title>
<style type="text/css">
 #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;}
</style>
<script type="text/javascript">
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 + '<br>';
   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';  
}
</script>
</head>  
<body>
<form>
<textarea id="codeTextarea"></textarea>
</form>
<script type="text/javascript">
createTextAreaWithLines('codeTextarea');
</script>
</body>
</html>

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

Javascript 相关文章推荐
JavaScript的内存释放问题详解
Jan 21 Javascript
JS动态加载当前时间的方法
Feb 09 Javascript
jquery实现简单的无缝滚动
Apr 15 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
Angular中$cacheFactory的作用和用法实例详解
Aug 19 Javascript
Parcel 打包示例(React HelloWorld)
Jan 16 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
Jul 21 Javascript
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
jquery实现上传图片功能
Jun 29 jQuery
Node快速切换版本、版本回退(降级)、版本更新(升级)
Jan 07 Javascript
js实现Select列表内容自动滚动效果代码
Aug 20 #Javascript
javascript如何操作HTML下拉列表标签
Aug 20 #Javascript
七夕情人节丘比特射箭小游戏
Aug 20 #Javascript
js脚本分页代码分享(7种样式)
Aug 19 #Javascript
贴近用户体验的Jquery日期、时间选择插件
Aug 19 #Javascript
JS文字球状放大效果代码分享
Aug 19 #Javascript
IE6兼容透明背景图片及解决方案
Aug 19 #Javascript
You might like
深入掌握include_once与require_once的区别
2013/06/17 PHP
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
对textarea框的代码调试,而且功能上使用非常方便,酷
2006/06/30 Javascript
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
jQuery前端框架easyui使用Dialog时bug处理
2014/12/05 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
Pyhton中防止SQL注入的方法
2015/02/05 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
Python3几个常见问题的处理方法
2019/02/26 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
Python实现对adb命令封装
2020/03/06 Python
乐观大学生的自我评价
2014/01/10 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
庆六一活动总结
2014/08/29 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书