2015-03-25 81 views

回答

1

您链接的示例只是将滚动条对齐到相同的高度,它似乎没有对元素进行任何智能匹配。

所以一个好的开始就是对齐滚动条。

+1

感谢您指出。有更聪明的方法吗?这无法轻松处理图像繁重的文档。 – Hedge 2015-03-25 12:40:19

1

试试这个:

var $elements = $('textarea'); 

var sync = function(e){ 
    var $other = $elements.not(this).off('scroll'), other = $other.get(0); 
    var percentage = this.scrollTop/(this.scrollHeight - this.offsetHeight); 
    other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight); 
    setTimeout(function(){ $other.on('scroll', sync); },10); 
} 

$elements.on('scroll', sync); 

小提琴:http://jsfiddle.net/b75KZ/5/

虽然,我不知道这是否会是一个textarea你想在右边,也许div显示呈现的HTML?

如果是这样,只需将html中的元素和jQuery中的选择器更改为var $elements = $('textarea, div#html');,并确保为div设置了id属性集。另外,如果您在页面上有多个textarea s,并且希望更具体,只需将选择器更改为var $elements = $('textarea#markdown, div#html');并相应地更新标记即可。

<textarea id="markdown">...</textarea> 
<div id="html">...</div>