浏览器兼容性

211 阅读1分钟

1、HTML

html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。

2、JavaScript

2.1 requestAnimation

var requestAnimation = window.requestAnimationFrame 
                        || window.webkitRequestAnimationFrame
                        || window.mozRequestAnimationFrame
                        || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||                            function(fn){                            setTimeout(fn, 10)                            };requestAnimation(()=>{ console.log(1) })

2.2 300ms延迟

产生300ms延迟的原因?为了区分用户是否是双击操作。

移动端浏览器单击后事件顺序:touchstart  -> touchend -> mouseover -> mousedown -> mouseup -> click

如下截图可以看到 300ms 延迟的现象。


其中,我自己又百度学习了一下 mouseover mouseenter的区别(www.cnblogs.com/wymbk/p/571…

解决方案:参考 juejin.cn/post/684490…

  • 方案一:禁用缩放
  • 方案二:更改默认的视口宽度
  • 方案三:CSS touch-action

3、CSS3

modernizer是一个js文件,会检查当前的浏览器支持什么特性,就在Html标签上添加什么类,然后如果不支持添加no-xxx类,这样,就可以针对两种情况写两种css。