Advertisement
lalatino

simultaneously scrolling textareas

Jul 9th, 2012
549
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <html>
  2. <head>
  3. <title> http://stackoverflow.com/questions/11399630/synchronizing-span-and-textarea-scrollbars-scrollbar-slightly-off-and-pasting </title>
  4. <style type="text/css">
  5.  
  6. span {
  7.     width:93%;
  8.     height: 100%;
  9. }
  10.  
  11. textarea {
  12.     width:92%;
  13.     height: 100%;
  14.     border-style:solid;
  15.     border-color:black;
  16.     border-width:2px;
  17.     font-size:13px;
  18. }
  19.  
  20. table {
  21.     width:100%;
  22.     height:100%;
  23. }
  24.  
  25. .title {
  26.     height:5%;
  27.     text-align:center;
  28.     background-color:#009;
  29.     color:white;
  30. }
  31.  
  32. #ogline {
  33.     padding-top:4px;
  34.     overflow:auto;
  35.     font-size:12px;
  36.     line-height:14.99px;
  37.     width:6%;
  38. }
  39.  
  40. </style>
  41.  
  42. <script type="text/javascript">
  43. <!--
  44.  
  45. var scrolling=false;
  46.  
  47. function og_scroll(el)
  48. {
  49.     if (scrolling && el!=scrolling) {
  50.         return;
  51.     }
  52.     scrolling = el;
  53.     var textareas = document.getElementsByTagName('textarea');
  54.     for (var i=0; i<textareas.length; i++) {
  55.         if (textareas[i].id.indexOf('og')==0) {
  56.             textareas[i].scrollTop=el.scrollTop;
  57.         }
  58.     }
  59.     scrolling = false;
  60. }
  61.  
  62. function up(num)
  63. {
  64.     var area = document.getElementById('og'+num);
  65.     if (area.scrollTop > 0) {
  66.         area.scrollTop -= 15;
  67.     }
  68.     //console.log(area);
  69. }
  70.  
  71. function down(num)
  72. {
  73.     var area = document.getElementById('og'+num);
  74.     if (area.scrollTop < area.scrollHeight) {
  75.         area.scrollTop += 15;
  76.     }
  77. }
  78.  
  79.  
  80. function fix_mouse_scroll() {
  81.     var textareas = document.getElementsByTagName('textarea');
  82.     for (var i=0; i<textareas.length; i++) {
  83.         if (textareas[i].id.indexOf('og')==0) {
  84.             if ("onmousewheel" in document) {
  85.                 textareas[i].onmousewheel = fixscroll;
  86.             } else {
  87.                 textareas[i].addEventListener('DOMMouseScroll', fixscroll, false);
  88.             }
  89.         }
  90.     }
  91. }
  92.  
  93. function fixscroll(event){
  94.     var delta=event.detail? event.detail : event.wheelDelta; // positive or negative number
  95.     delta = delta>0 ? 15 : -15;
  96.     event.target.scrollTop += delta;
  97.     //console.log(delta, ' with ',event.target.scrollTop);
  98. }
  99.  
  100. //-->
  101. </script>
  102.  
  103. </head>
  104.  
  105. <body onload="fix_mouse_scroll();">
  106. <table>
  107. <tr><td class="title">Original File</td></tr>
  108. <tr><td> <span onmousedown='up(1)'>[UP]</span> <span onmousedown='down(1)'>[DOWN]</span> <textarea id='og1' onscroll="og_scroll(this);"></textarea></td></tr>
  109. <tr><td> <span onmousedown='up(2)'>[UP]</span> <span onmousedown='down(2)'>[DOWN]</span> <textarea id='og2' onscroll="og_scroll(this);"></textarea></td></tr>
  110. <tr><td> <span onmousedown='up(3)'>[UP]</span> <span onmousedown='down(3)'>[DOWN]</span> <textarea id='og3' onscroll="og_scroll(this);"></textarea></td></tr>
  111. </table>
  112. </body>
  113.  
  114. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement