由於微信自帶字體放大功能,因此基於微信的頁面都可以通過微信進行字體放大,但是有些情況下這並不是我們想要的,因為很多移動端頁面的開發都是使用rem作為單位的,當使用微信進行字體放大是,會導致頁面的整體布局亂掉的情況出現,這對用戶體驗來說是極其不友好的,我們希望能夠禁止微信的字體放大功能,下面我通過查找資料找到的一些解決方法,至於移動端頁面是如何開發的及rem單位的特點,這里不做贅述。
1.安卓手機禁止字體放大js代碼
- <span style="font-size:14px;">/*
- * 頁面加入這段代碼可使Android機器頁面不再受到用戶字體縮放強制改變大小
- * 但是會有一個1秒左右的延遲,期間可以考慮通過loading展示
- * 僅供參考
- */
- (function(){
- if (typeof(WeixinJSBridge) == "undefined") {
- document.addEventListener("WeixinJSBridgeReady", function (e) {
- setTimeout(function(){
- WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) {
- // alert(JSON.stringify(res));
- });
- },0);
- });
- } else {
- setTimeout(function(){
- WeixinJSBridge.invoke('setFontSizeCallback',{"fontSize":0}, function(res) {
- // alert(JSON.stringify(res));
- });
- },0);
- }
- })();
- </span>
- 或者 方法二
-
//微信內置瀏覽器字體縮放
if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
handleFontSize();
} else {
if (document.addEventListener) {
document.addEventListener("WeixinJSBridgeReady", handleFontSize, false);
} else if (document.attachEvent) {
document.attachEvent("WeixinJSBridgeReady", handleFontSize);
document.attachEvent("onWeixinJSBridgeReady", handleFontSize);
}
}
function handleFontSize() {
// 設置網頁字體為默認大小
WeixinJSBridge.invoke('setFontSizeCallback', {'fontSize': 0});
// 重寫設置網頁字體大小的事件
WeixinJSBridge.on('menu:setfont', function () {
WeixinJSBridge.invoke('setFontSizeCallback', {'fontSize': 0});
});
} - 2.iphone手機禁止字體放大,css代碼
-
- <span style="font-size:14px;"></span>
- <style type="text/css">
- body
- {
- -webkit-text-size-adjust: 100% !important;
- text-size-adjust: 100% !important;
- -moz-text-size-adjust: 100% !important;
- }
- </style>