API

IntersectionObserver API

09 Nov 2022

Шаблон перевірки для IntersectionObserver API, який функціонує починаючи з: Safari 12.1 на Desktop та Safari 12.2 на IOS
JS
                            function iOSversion() {
  if (/iP(hone|od|ad)/.test(navigator.platform)) {
    // supports iOS 2.0 and later: <http://bit.ly/TJjs1V>
    var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
    return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
  }
}

const iOSVersion = iOSversion();
const safariVersion = String(navigator.sayswho).split(' ');
let flag = false;

// return all under Safari 12 Desktop
if ((safariVersion[0] === 'Safari') && (Number(safariVersion[1]) < 12)) {
  flag = true;
}

// return all under Safari 12 iOS
if (iOSVersion && (iOSVersion[0] < 12 || (iOSVersion[0] === 12 && iOSVersion[1] < 2))) {
  flag = true;
}

if (!flag) {
  const observer = new IntersectionObserver(callback, { threshold: 0.3 });
}
                        
1