mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-08-31 19:01:54 +02:00
use pageXOffset instead of scrollX for ie support (#664)
This commit is contained in:
committed by
Ian Storm Taylor
parent
5ce7d165aa
commit
0f59ef6447
@@ -13,17 +13,17 @@ function scrollToSelection(selection) {
|
|||||||
const backward = isBackward(selection)
|
const backward = isBackward(selection)
|
||||||
const range = selection.getRangeAt(0)
|
const range = selection.getRangeAt(0)
|
||||||
const rect = range.getBoundingClientRect()
|
const rect = range.getBoundingClientRect()
|
||||||
const { innerWidth, innerHeight, scrollY, scrollX } = window
|
const { innerWidth, innerHeight, pageYOffset, pageXOffset } = window
|
||||||
const top = (backward ? rect.top : rect.bottom) + scrollY
|
const top = (backward ? rect.top : rect.bottom) + pageYOffset
|
||||||
const left = (backward ? rect.left : rect.right) + scrollX
|
const left = (backward ? rect.left : rect.right) + pageXOffset
|
||||||
|
|
||||||
const x = left < scrollX || innerWidth + scrollX < left
|
const x = left < pageXOffset || innerWidth + pageXOffset < left
|
||||||
? left - innerWidth / 2
|
? left - innerWidth / 2
|
||||||
: scrollX
|
: pageXOffset
|
||||||
|
|
||||||
const y = top < scrollY || innerHeight + scrollY < top
|
const y = top < pageYOffset || innerHeight + pageYOffset < top
|
||||||
? top - innerHeight / 2
|
? top - innerHeight / 2
|
||||||
: scrollY
|
: pageYOffset
|
||||||
|
|
||||||
window.scrollTo(x, y)
|
window.scrollTo(x, y)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user