由于微信自带字体放大功能,因此基于微信的页面都可以通过微信进行字体放大,但是有些情况下这并不是我们想要的,因为很多移动端页面的开发都是使用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>