Comments (4)
I've managed to force apply the polyfill the following way:
delete Element.prototype.scrollTo;
require('scroll-behavior-polyfill');
But I really don't like it.
from scroll-behavior-polyfill.
It would be even cooler if I can do something like that:
import { patch } from 'scroll-behavior-polyfill';
/* my code */
patch();
from scroll-behavior-polyfill.
By chance, is there a better way to detect when the polyfill is really required?
It seems like the 'scrollBehavior' in document.documentElement.style
is not a good-enough test as it returns true and then the native smooth scrollBehavior does not work in practice. It has been reported for some Windows and Linux users.
The home readme may also be a bit misleading: it's more reliable to always apply the polyfill in current state.
from scroll-behavior-polyfill.
Nolan Lawson used another way to test for this in his project but in my case it didn't give much better results: nolanlawson/pinafore#2082
function testSupportsSmoothScroll () {
let supports = false
try {
const div = document.createElement('div')
div.scrollTo({
top: 0,
get behavior () {
supports = true
return 'smooth'
}
})
} catch (err) {} // Edge throws an error
return supports
}
from scroll-behavior-polyfill.
Related Issues (20)
- scrollIntoView should default to block: "start" HOT 2
- Comparison to iamdustan/smoothscroll HOT 2
- IE 11 HTMLElement.scrollIntoView() doesn't execute HOT 6
- Polyfilled smooth scroll slower than native implementations with long distances HOT 1
- Cannot read property 'set' of undefined HOT 1
- TypeError: e is not an Object. (evaluating '"style"in e') HOT 1
- `scroll-padding` is ignored
- Support for non-object syntax. HOT 1
- catchNavigation click causes error when using hash for routing
- Uncaught SyntaxError: Failed to execute 'querySelector' on 'Document': 'xxx' is not a valid selector. HOT 1
- publish minimized version for jsdelivr HOT 2
- Is really needed polyfill in 2k22?
- node >= 9.0.0 HOT 2
- Anchor Bug in Edge and Safari HOT 12
- css scroll-snap fights scroll animation HOT 6
- TypeScript 3.5 compatibility issue HOT 1
- not compatible with SSR HOT 11
- Issue with dynamic import: "'index.d.ts' is not a module" HOT 1
- anchor detection if the link also contains a path fails HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scroll-behavior-polyfill.