Add detection for support of scrollToOptions mode of window.scrollTo() (#2575)

This commit is contained in:
Chris Smith
2020-08-27 07:40:44 -04:00
committed by GitHub
parent 55f3f361fa
commit ef2814687b
2 changed files with 35 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
/*!
{
"name": "scrollToOptions dictionary",
"property": "scrolltooptions",
"caniuse": "mdn-api_scrolltooptions",
"notes": [{
"name": "MDN docs",
"href": "https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo"
}],
"authors": ["Oliver Tušla (@asmarcz)", "Chris Smith (@chris13524)"]
}
!*/
define(['Modernizr', 'createElement', 'getBody'], function (Modernizr, createElement, getBody) {
Modernizr.addTest('scrolltooptions', function () {
var body = getBody();
var returnTo = window.pageYOffset;
var needsFill = body.clientHeight <= window.innerHeight;
if (needsFill) {
var div = createElement('div');
div.style.height = (window.innerHeight - body.clientHeight + 1) + 'px';
div.style.display = 'block';
body.appendChild(div);
}
window.scrollTo({
top: 1
});
var result = window.pageYOffset !== 0;
if (needsFill) {
body.removeChild(div);
}
window.scrollTo(0, returnTo);
return result;
});
});

View File

@@ -268,6 +268,7 @@
"requestanimationframe",
"script/async",
"script/defer",
"scrolltooptions",
"serviceworker",
"speech/speech-recognition",
"speech/speech-synthesis",