md/assets/scripts/sync-scroll.js

24 lines
655 B
JavaScript
Raw Normal View History

// 左右栏同步滚动
2019-11-10 15:52:46 +08:00
$(document).ready(() => {
let timeout;
$('div.CodeMirror-scroll, #preview').on("scroll", function callback() {
clearTimeout(timeout);
2019-11-10 16:59:23 +08:00
let source = $(this),
2019-11-10 15:52:46 +08:00
target = $(source.is("#preview") ? 'div.CodeMirror-scroll' : '#preview');
target.off("scroll");
let source0 = source[0];
let target0 = target[0];
let percentage = source0.scrollTop / (source0.scrollHeight - source0.offsetHeight);
let height = percentage * (target0.scrollHeight - target0.offsetHeight);
target0.scrollTo(0, height);
2019-11-10 15:52:46 +08:00
timeout = setTimeout(() => {
target.on("scroll", callback);
}, 100);
});
});