微信小程序跳转的时候,报上面的错误,前提是各个配置都是正确的,一脸懵逼!
原因是今天早上打开微信开发者工具提示升级到最新版本导致的
最新版本是:1.03.2005140
解决方法:要么回退到上一个版本,要么使用最新的体验版
body { /* IOS禁止微信调整字体大小 */
-webkit-text-size-adjust: 100% !important;
text-size-adjust: 100% !important;
-moz-text-size-adjust: 100% !important;
}
<script>
(function() {
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 });
});
}
})();
script>
JavaScript 浮点数精度之谜
我们首先就想到计算机能读懂的是二进制,所以我们进行运算的时候,实际上是把数字转换为了二进制进行的,所以我们把0.1和0.2转换为二进制
0.1 => 0.0001 1001 1001 1001..(无限循环)
0.2 => 0.0011 0011 0011 0011…(无限循环)
这里可以看出转换为二进制是一个无限循环的数字,单在计算机中对于无限循环的数字会进行舍入处理的,进行双精度浮点数的小数部分最多支持52位。然后把两个2进制的数进行运算得出的也是一个二进制数值,最后再把它转换为十进制。保留17位小数,所以0.1+0.2的值就成了 0.30000000000000004。 0.1+0.1的值成了0.20000000000000000,全是0的时候可以省略,就成了0.2
比较成熟的工具库可以使用,
由于 iOS Safari 限制不允许 audio autoplay, 必须用户主动交互(例如 click)后才能播放 audio
// 解决ios微信不自动播放
const _audio = document.getElementById('audio');
if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
_audio.play();
} else {
if (document.addEventListener) {
document.addEventListener("WeixinJSBridgeReady", function() {
_audio.play();
}, false);
} else if (document.attachEvent) {
document.attachEvent("WeixinJSBridgeReady", function() {
_audio.play();
});
document.attachEvent("onWeixinJSBridgeReady", function() {
_audio.play();
});
}
}
// 解决ios safari浏览器不自动播放,当用户开始触碰页面时出发播放。
document.addEventListener("touchstart", function(e) {
if (isPlay) {
_audio.play();
isPlay = false;
}
}, false);
NaN === NaN; // => false
NaN === 1; // => false
-0 === +0; // => true
Object.is(NaN, NaN); // => true
Object.is(NaN, 1); // => false
Object.is(-0, +0); // => false
总结:
NaN
值或对负零和正零进行更严格的区分,那么 Object.is()
是一个不错的选择。node编程中最重要的思想就是模块化,import和require都是被模块化所使用。
小程序开发中发现,为view设置了宽高后,background-image并没有适应宽高,查询发现需要加上下面的代码才可以
.zoomImage {
background-image:url(images/yuantiao.jpg);
background-repeat:no-repeat;
background-size:100% 100%;//重点是这句
-moz-background-size:100% 100%;
}
line-height属性用于设置行间的距离,也就是行高。可以用来控制文字与行之间的距离
如上图,行间距包括上间距,下间距和文字的高度。
改变行间距的大小,实际是改变上间距和下间距的高度,文字的高度是不会变化的
报错信息:
pages/index/index.wxss 中的本地资源图片无法通过 WXSS 获取,可以使用网络图片,
或者 base64,或者使用<image/>标签。
解决办法:将图片demo_bg.jpg 转换为base64,在这里把要使用的图片转换一把,然后将得到的字符放到background-image属性值。
项目中需要在用户第一次进入的时候,为页面加上一个遮罩引导指示功能,一顿操作之后发现,在遮罩层滚动的时候,下面的页面会滚动。
解决办法:直接在遮罩层上加catchtouchmove="{{true}}"就可以,但是需要注意的是,在模拟器上是不行,在真机上是可以的。