91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

ios10以下safari設置style無效的解決方法

發布時間:2020-09-28 21:27:31 來源:腳本之家 閱讀:285 作者:白衣卿相 欄目:移動開發

項目中遇到的奇怪問題,已定位原因。Attempted to assign to readonly property報錯

起因:項目中寫了個點擊事件,增加動態效果,類似于轉一轉,rotate(360)。很簡單的一個特效。
設置元素的transition:transform 1s。 然后動態改變元素的transfrom:rotate的角度。一切看起來沒問題。本地測試,真機測試都OK。但是提測后,在測試的IOS10下的safari,竟然沒有生效。

定位原因: 一開始以為是transform沒有加上前綴。但確認后排除。于是真機連接代理測試,在點擊事件中alert彈窗,發現并沒有執行。于是確認有報錯。try catch后彈出錯誤。

Attempted to assign to readonly property

查閱資料得知,是safari內核bug。網上有解決方案,不要使用嚴格模式,即刪除'use strict'。
(沒有驗證,因為覺得不可行,因小失大)

解決方案。 猜測是因為Style不可以直接change,但應該可以設置Style.transform。測試可行,但這樣設置多個屬性的時候,并不優雅,可換成class。 不過因為rotate角度涉及到計算,故而本人并沒有采用設置class的方案。

錯誤:  dom.style = `transform: rotate(${x}deg)`;

正確   dom.style.transfrom = 'rotate(${x}deg)';

PS:解決iOS10的Safari下Meta設置user-scalable=no無效的方法

蘋果為了提高Safari中網站的輔助功能,屏蔽了Meta下的user-scalable=no功能。所以在iOS10下面,就算加上user-scalable=no,Safari瀏覽器也能支持手動縮放。

我們可以用js加監聽事件來阻止手動縮放。

代碼如下:

  window.onload=function () { 
    document.addEventListener('touchstart',function (event) { 
      if(event.touches.length>1){ 
        event.preventDefault(); 
      } 
    }) 
    var lastTouchEnd=0; 
    document.addEventListener('touchend',function (event) { 
      var now=(new Date()).getTime(); 
      if(now-lastTouchEnd<=300){ 
        event.preventDefault(); 
      } 
      lastTouchEnd=now; 
    },false) 
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

徐闻县| 涿鹿县| 玉龙| 忻州市| 旅游| 珠海市| 莒南县| 平遥县| 望城县| 绥德县| 阿巴嘎旗| 南岸区| 于田县| 宝清县| 成都市| 黄陵县| 广河县| 台东市| 若羌县| 莫力| 井研县| 宜宾县| 康定县| 广宁县| 闽侯县| 阳城县| 扎囊县| 大方县| 漳州市| 深水埗区| 洛隆县| 南雄市| 武安市| 札达县| 平邑县| 昭苏县| 青田县| 西乡县| 安泽县| 蓝田县| 阿克陶县|