国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > CSS > 正文

淺談遇到的幾個瀏覽器兼容性問題

2024-07-11 08:59:28
字體:
供稿:網(wǎng)友

背景

解決瀏覽器的兼容性問題是一件很煩的事情,其中并沒有太多高深的技巧,但是開發(fā)需要,也不得不去解決它,最近在開發(fā)項目中也遇到一些兼容性的問題,希望把這些問題的解決方式記錄下來,下次遇到就直接拿過來用,也希望對他人有一些幫助。

兼容性問題及解決方式

1.object-fit在ie11和edge中不兼容,可以一些css hacks

使用background-size和background-position替換object-fit設(shè)置圖片的樣式

<img class="loadingImage" src="url"/>.loadingImage {    width: 100%;    height: 100%;    transition: all 1s ease;    object-fit: cover;  }

上述代碼中可以修改為如下:

<div class="loadingImage"></div>.loadingImage {    width: 100%;    height: 100%;    background-size: cover;    background-position: center;    background-image: url(url);}

對于視頻播放,object-fit:cover可以解決視頻不會隨著屏幕縮放的問題

<video class="video"></video>.video {  width: 100%;  height: auto;  position: relative;  left: 50%;  top: 50%;  transform: translate(-50%, -50%);  object-fit: cover;}

可以使用如下css設(shè)置video標(biāo)簽,解決object-fit不兼容ie和edge的問題

<video class="video"></video>.video {  width: 100%;  height: auto;  position: relative;  left: 50%;  top: 50%;  transform: translate(-50%, -50%);  object-fit: fill;}

2.window.onload事件會在圖片等資源加載完成后執(zhí)行方法,但是它不會檢測視頻資源是否加載完成,可以使用如下代碼檢測視頻是否加載完成

<video id="video"></video>let video = document.getElementById('video')if (video.readyState === 4) {    console.log('finish!')}

3.css的transition執(zhí)行完成后會觸發(fā)transitionend事件,但是存在兼容性,可以使用下面代碼解決瀏覽器間的兼容性

function checkTransitionEvent() {  var el = document.createElement('div')  var transitions = {    'transition':'transitionend',    'OTransition':'oTransitionEnd',    'MozTransition':'transitionend',    'WebkitTransition':'webkitTransitionEnd'  }  for(t in transitions){      if( el.style[t] !== undefined ){          return transitions[t];      }  }}

4.onwheel事件兼容性

support() {  let support = "onwheel" in document.createElement("div") ? "wheel" : // Modern browsers support "wheel"    document.onmousewheel !== undefined ? "mousewheel" : // Webkit and IE support at least "mousewheel"    "DOMMouseScroll";  return support},

5.wheel事件的wheelDelta和detail屬性在不同瀏覽器下值不同,可以使用如下代碼對其進(jìn)行normalize,參考https://stackoverflow.com/questions/5527601/normalizing-mousewheel-speed-across-browsers

var wheelDistance = function(evt){  if (!evt) evt = event;  var w=evt.wheelDelta, d=evt.detail;  if (d){    if (w) return w/d/40*d>0?1:-1; // Opera    else return -d/3;              // Firefox;         TODO: do not /3 for OS X  } else return w/120;             // IE/Safari/Chrome TODO: /3 for Chrome OS X};var wheelDirection = function(evt){  if (!evt) evt = event;  return (evt.detail<0) ? 1 : (evt.wheelDelta>0) ? 1 : -1;};

6.requestAnimationFrame兼容性

let cancelAnimationFrame = window.cancelAnimationFrame   || window.mozCancelAnimationFrame   || function(id) { clearTimeout(id) };let requestAnimationFrame = window.requestAnimationFrame   || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame   || window.msRequestAnimationFrame  || function (callback) { return setTimeout(callback, 1000 / 60) };

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 横山县| 龙州县| 沧州市| 乐陵市| 黎川县| 吉水县| 聂拉木县| 昌图县| 梅州市| 深泽县| 崇阳县| 渭南市| 朝阳市| 宿松县| 衡山县| 襄城县| 辽源市| 绥化市| 政和县| 阜阳市| 玉田县| 荣昌县| 榆树市| 慈溪市| 灵台县| 府谷县| 新巴尔虎左旗| 屏山县| 疏勒县| 广平县| 丰原市| 淅川县| 尼木县| 昭苏县| 桃园县| 信宜市| 海兴县| 会昌县| 福建省| 木里| 东乡|