麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:39:42
字體:
來源:轉載
供稿:網友

項目中遇到的奇怪問題,已定位原因。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)   }

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 男女羞羞在线观看 | 久久国产一二区 | 九九热视频这里只有精品 | 亚洲码无人客一区二区三区 | 国产又粗又爽又深的免费视频 | 男女做性免费网站 | 毛片小网站 | 99激情视频| 一区二区三区日韩电影 | 久久精品小短片 | 中文区中文字幕免费看 | 成人免费福利 | 久久国产精品系列 | 久久久久久久午夜 | 欧洲成人精品 | 欧美成人高清视频 | 欧美特黄特色视频 | 久久成人免费网 | 麻豆视频免费网站 | 9999在线视频 | 婷婷久久综合九色综合色多多蜜臀 | 一级美女大片 | 一级毛片电影网 | 亚洲一区二区三区日本久久九 | 斗破苍穹在线观看免费完整观看 | 久久精品一区二区三 | 久久久久久免费免费 | 在线视频观看国产 | 免费的性生活视频 | 精品一区在线视频 | 黄色成人小视频 | av在线一区二区三区 | 国产精品91在线 | 特级无码毛片免费视频尤物 | 国产1区2区在线 | 一级免费毛片 | 99re热视频这里只精品 | 欧美精品免费一区二区三区 | 毛片在哪里看 | 国产噜噜噜 | 黄色av电影在线播放 |