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 相关文章推荐
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
Jan 09 Javascript
DOM相关内容速查手册
Feb 07 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
基于JavaScript代码实现pc与手机之间的跳转
Dec 23 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
JS在if中的强制类型转换方式
Jul 15 Javascript
vue实现简单的MVVM框架
Aug 05 Javascript
JS实现吸顶特效
Jan 08 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
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php简单获取目录列表的方法
2015/03/24 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
js 动态文字滚动的例子
2011/01/17 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
react.js使用webpack搭配环境的入门教程
2017/08/14 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
WebPack工具运行原理及入门教程
2020/12/02 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python类中super()和__init__()的区别
2016/10/18 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python变量类型知识点总结
2019/02/18 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
简单了解python列表和元组的区别
2020/05/14 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
数学专业推荐信范文
2013/11/21 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
人事主管岗位职责
2015/02/04 职场文书
警告通知
2015/04/25 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python
MySQL如何使备份得数据保持一致
2022/05/02 MySQL