現在 Safari 15.4 現在支持原生平滑滾動,我正在尋找一種可靠的方法來檢查瀏覽器是否使用原生平滑滾動。
我試過這個方法:
if (getComputedStyle(document.body).scrollBehavior === 'smooth') {
console.log('Smooth scrolling natively supported ');
}else{
console.log('Smooth scrolling NOT natively supported');
}
但它不能準確檢測 Chrome 和 Safari 15.4 上的平滑滾動(它回傳一個誤報)。這是因為scrollBehavior設定為auto.
我也試過這個方法:
let supported = 'scrollBehavior' in document.documentElement.style;
if(supported == true){
console.log('Smooth scrolling natively supported ');
}else{
console.log('Smooth scrolling NOT natively supported');
}
這似乎更可靠,但是當我在 Google Chrome 上禁用平滑滾動時,它讀取的是誤報。這可能是因為瀏覽器支持它,但它沒有啟用?(我通過使用從終端啟動 Chrome 禁用了它/Applications/Google\ Chrome.app --args --disable-smooth-scrolling)
檢查瀏覽器本機支持平滑滾動的最佳方法是什么?有沒有人有舊版本(pre v61)可以測驗這些或其他不支持平滑滾動的瀏覽器?
uj5u.com熱心網友回復:
最原生的方法是使用@supportsCSS at-rule 來檢查瀏覽器支持:
@supports (scroll-behavior:smooth) {
/* Supports smooth scrolling */
}
要在 JavaScript 中執行此檢查,您可以在 CSS 物件上使用此函式:
if(window.CSS.supports('scroll-behavior', 'smooth')) {
// Supports smooth scrolling
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/445005.html
標籤:javascript html css 平滑滚动
上一篇:隱藏最大寬度的元素:0?
