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重要知识更新
Jul 08 Javascript
jquery对元素拖动排序示例
Jan 16 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
基于jquery实现瀑布流布局
Jun 28 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
Mar 16 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
详解ES7 Decorator 入门解析
Feb 18 Javascript
使用JS判断页面是首次被加载还是刷新
May 26 Javascript
vue项目打包后请求地址错误/打包后跨域操作
Nov 04 Javascript
element tree树形组件回显数据问题解决
Aug 14 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
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php使用百度翻译api示例分享
2014/01/31 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
如何让一个json文件显示在表格里【实现代码】
2016/05/09 Javascript
js数组的五种迭代方法及两种归并方法(推荐)
2016/06/14 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
vue实现鼠标经过动画
2019/10/16 Javascript
如何在微信小程序中存setStorage
2019/12/13 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
python里大整数相乘相关技巧指南
2014/09/12 Python
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
python xml解析实例详解
2016/11/14 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
python http基本验证方法
2018/12/26 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
PyTorch预训练的实现
2019/09/18 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
实习鉴定范文
2013/12/19 职场文书
团员个人总结
2015/02/26 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android