亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決web開發中瀏覽器兼容性問題

發布時間:2021-08-02 14:29:10 來源:億速云 閱讀:191 作者:小新 欄目:web開發

這篇文章主要介紹如何解決web開發中瀏覽器兼容性問題,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

兼容性問題及解決方式

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

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

<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設置video標簽,解決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事件會在圖片等資源加載完成后執行方法,但是它不會檢測視頻資源是否加載完成,可以使用如下代碼檢測視頻是否加載完成

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

3.css的transition執行完成后會觸發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屬性在不同瀏覽器下值不同,可以使用如下代碼對其進行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) };

以上是“如何解決web開發中瀏覽器兼容性問題”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沧源| 烟台市| 文成县| 调兵山市| 郸城县| 达拉特旗| 承德县| 宁武县| 满城县| 弋阳县| 瓦房店市| 陇川县| 五常市| 旬邑县| 泰和县| 信阳市| 嘉鱼县| 萨迦县| 台北县| 鹿泉市| 图木舒克市| 定安县| 吉林省| 赞皇县| 城固县| 阆中市| 黎川县| 杭锦旗| 锦屏县| 沂源县| 澄城县| 湘潭县| 临城县| 筠连县| 三河市| 云浮市| 武邑县| 常德市| 砚山县| 永吉县| 平邑县|