我按以下方式设置了一个表格,每个单元格都包含一个跨度和一个文本区域:
<table>
<tr><td class="title">Original File</td></tr>
<tr><td><span id='ogline' onscroll="og.scrollTop=scrollTop"></span><span><textarea onscroll="ogline.scrollTop=scrollTop" onkeyup="linenumber()" id='og' onfocusout="linenumber()"></textarea></span></td></tr>
</table>
除此之外,我还有以下 CSS:
<style>
span {
width:93%;
height: 100%;
}
textarea {
width:92%;
height: 100%;
border-style:solid;
border-color:black;
border-width:2px;
font-size:13px;
}
table {
width:100%;
height:100%;
}
.title {
height:5%;
text-align:center;
background-color:#009;
color:white;
}
#ogline {
padding-top:4px;
overflow:auto;
font-size:12px;
line-height:14.99px;
width:6%;
}
</style>
我想要做的是让 span 的滚动条和 textarea 的滚动条同步。我使用 onscroll 事件侦听器和以下代码在某种程度上实现了这一点:
onscroll="og.scrollTop=scrollTop"
onscroll="ogline.scrollTop = scrollTop
这在一定程度上实现了我想要的效果,跨度大约偏离了它应该在的位置。我遇到的最大问题是当我将大量文本粘贴到文本区域时。这几乎完全不起作用,两个滚动条都完全关闭,直到我按住其中一个滚动条很长一段时间,然后另一个滚动条将尝试赶上另一个滚动条。
有什么建议么?我应该尝试解决这个问题的更好方法吗?任何帮助,将不胜感激。