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 相关文章推荐
鼠标拖动实现DIV排序示例代码
Oct 14 Javascript
AngularJS 执行流程详细介绍
Aug 18 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
JS中动态创建元素的三种方法总结(推荐)
Oct 20 Javascript
微信小程序 表单Form实例详解(附源码)
Dec 22 Javascript
javascript实现文字无缝滚动效果
Aug 26 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
Jun 14 jQuery
微信小程序实现的3d轮播图效果示例【基于swiper组件】
Dec 11 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
Oct 25 Javascript
vue使用keep-alive实现组件切换时保存原组件数据方法
Oct 30 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边学边教》(01.开篇――准备工作)
2006/12/13 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
深入理解Python装饰器
2016/07/27 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python 和 JS 有哪些相同之处
2017/11/23 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python list运算操作代码实例解析
2020/01/20 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
美国知名日用品连锁超市:Dollar General(多来店)
2017/01/14 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
竞选大队委员演讲稿
2014/04/28 职场文书
鉴定评语大全
2014/05/05 职场文书
党员个人剖析材料(四风问题)
2014/10/07 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
运动会新闻报道稿
2015/07/22 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
Mysql文件存储图文详解
2021/06/01 MySQL
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android