亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ios10以下safari設(shè)置style無效的解決方法

 更新時間:2018年09月21日 11:27:44   作者:白衣卿相  
這篇文章主要介紹了ios10以下safari設(shè)置style無效的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

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

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

Attempted to assign to readonly property

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

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

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

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

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

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

我們可以用js加監(jiān)聽事件來阻止手動縮放。

代碼如下:

  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) 
  }

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

相關(guān)文章

最新評論