Make details element syncscrollable

Signed-off-by: Yukai Huang <yukaihuangtw@gmail.com>
This commit is contained in:
Yukai Huang 2019-08-03 15:11:37 +08:00
parent 8d889a6736
commit 6f7de25079
No known key found for this signature in database
GPG Key ID: D4D3B2F0E99D4914
2 changed files with 10 additions and 1 deletions

View File

@ -539,6 +539,12 @@ export function finishView (view) {
} catch (err) {
console.warn(err)
}
// register details toggle for scrollmap recalulation
view.find('details.raw').removeClass('raw').each(function (key, val) {
$(val).on('toggle', window.viewAjaxCallback)
})
// render title
document.title = renderTitle(view)
}

View File

@ -118,8 +118,11 @@ md.use(markdownitContainer, 'spoiler', {
var m = tokens[idx].info.trim().match(/^spoiler\s+(.*)$/)
if (tokens[idx].nesting === 1) {
const startline = tokens[idx].map[0] + 1
const endline = tokens[idx].map[1]
// opening tag
return '<details><summary>' + md.utils.escapeHtml(m[1]) + '</summary>\n'
return `<details class="part raw" data-startline="${startline}" data-endline="${endline}"><summary>` + md.utils.escapeHtml(m[1]) + '</summary>\n'
} else {
// closing tag
return '</details>\n'