CodeMirrorを使用してライブ プレビュー エディターを構築しています。プレビューを一番下までスクロールできるように、CodeMirror エディターが一番下までスクロールされているかどうかを確認する必要があります。
どうすればこれを判断できますか?
CodeMirrorを使用してライブ プレビュー エディターを構築しています。プレビューを一番下までスクロールできるように、CodeMirror エディターが一番下までスクロールされているかどうかを確認する必要があります。
どうすればこれを判断できますか?
aljordan82 のソリューションにいくつかの小さな調整を加える必要がありました。
var editor = CodeMirror.fromTextArea(document.getElementById('post'), {
'mode': 'gfm',
'lineNumbers': true,
'theme': 'default',
'lineWrapping': true,
});
var $preview = $('#preview-div');
var $scroller = $(editor.getScrollerElement());
$.fn.scrollHeight = function() {
return this[0].scrollHeight;
};
var atBottom = $scroller.scrollHeight() - $scroller.scrollTop() - $scroller.outerHeight() <= 0
&& $preview.scrollHeight() - $preview.scrollTop() - $preview.outerHeight() <= 0;
$preview.html(html);
if (atBottom) {
$preview.scrollTop($preview.scrollHeight());
}
プレビュー div では数値がまったく同じではなかったので、<= 0
代わりにそうしました。(2px ずれている、境界線のせいでしょうか?)