Prohlížeč zdrojového kódu
app/javascript/controllers/compare_scroll_controller.js
import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
connect() {
this.panes = Array.from(this.element.querySelectorAll("pre"))
this.panes.forEach(pane => {
pane.addEventListener("scroll", () => this.sync(pane))
})
}
sync(source) {
this.panes.forEach(pane => {
if (pane !== source) {
pane.scrollTop = source.scrollTop
pane.scrollLeft = source.scrollLeft
}
})
}
}