UNPKG

@zebra-ui/swiper

Version:

专为多端设计的高性能swiper轮播组件库,支持多种复杂的 3D swiper轮播效果。

59 lines (49 loc) 1.41 kB
import type { Browser, GetBrowser, CalcBrowser } from '../../types/components/shared/get-browser' let browser: Browser | undefined const calcBrowser: CalcBrowser = () => { let needPerspectiveFix = false let isSafariBrowser = false let isWebView = false let need3dFix = false // 仅在 H5 环境下进行浏览器检测 if (typeof window !== 'undefined' && typeof navigator !== 'undefined') { const ua = navigator.userAgent.toLowerCase() const isSafari = () => ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android') if (isSafari()) { isSafariBrowser = true const fullUA = navigator.userAgent if (fullUA.includes('Version/')) { const [major, minor] = fullUA .split('Version/')[1] .split(' ')[0] .split('.') .map((num) => Number(num)) needPerspectiveFix = major < 16 || (major === 16 && minor < 2) } } isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( navigator.userAgent ) need3dFix = isSafariBrowser || (isWebView && /iPhone|iPod|iPad/i.test(navigator.platform)) } return { isSafari: needPerspectiveFix || isSafariBrowser, needPerspectiveFix, need3dFix, isWebView } } const getBrowser: GetBrowser = () => { if (!browser) { browser = calcBrowser() } return browser } export { getBrowser }