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 相关文章推荐
js 数据类型转换总结笔记
Jan 17 Javascript
更优雅的事件触发兼容
Oct 24 Javascript
jquery validate表单验证的基本用法入门
Jan 18 Javascript
简单讲解AngularJS的Routing路由的定义与使用
Mar 05 Javascript
JS快速实现移动端拼图游戏
Sep 05 Javascript
vue 2.0 购物车小球抛物线的示例代码
Feb 01 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 Javascript
vue+canvas实现拼图小游戏
Sep 18 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
jQuery实现上下滚动公告栏详细代码
2018/11/21 jQuery
python matplotlib坐标轴设置的方法
2017/12/05 Python
python实现Floyd算法
2018/01/03 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
python实现dijkstra最短路由算法
2019/01/17 Python
总结Python图形用户界面和游戏开发知识点
2019/05/22 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
2020/03/14 Python
python 字符串的驻留机制及优缺点
2020/06/19 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
计算机毕业生求职信
2014/06/10 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
公司经营目标责任书
2015/01/29 职场文书
趣味运动会标语口号
2015/12/26 职场文书
深度学习详解之初试机器学习
2021/04/14 Python
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle