在H5页面添加toast,且可以实现toast宽度自适应的功能。首先是在网上找了某一位大牛的js文件(未找到原始出处,此处不再做引用标注),并做了适应性的修改;
// msg:文案信息;duration:毫秒数;minWidth:宽度值,单位为rem;
function Toast(msg,duration,minWidth){
duration=isNaN(duration)?3000:duration;
var m = document.createElement('div');
m.innerHTML = msg;
m.style.cssText="max-width:60%;padding:0 .14rem;height: .4rem;color: rgb(255, 255, 255);line-height: .4rem;text-align: center;border-radius: .04rem;position: fixed;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 999999;background: rgba(0, 0, 0,.7);font-size: .16rem;"+"min-width:"+minWidth+"rem";
document.body.appendChild(m);
setTimeout(function() {
var d = 0.5;
m.style.webkitTransition = '-webkit-transform ' + d + 's ease-in, opacity ' + d + 's ease-in';
m.style.opacity = '0';
setTimeout(function() { document.body.removeChild(m) }, d * 1000);
}, duration);
}
这里使用了rem,其具体换算可以根据你的换算值做进一步调整;
此处附上我的rem js文件:
(function (doc, win) {
var sWide, sketchWide;
sketchWide = 0;
sWide = sketchWide == 0 ? 375 : sketchWide;
var docEl = doc.documentElement,
resizeEvt = "orientationchange" in window ? "orientationchange" : "resize",
recalc = function () {
var clientWidth = docEl.clientWidth;
if (!clientWidth) {
return
}
// if (clientWidth < 320) {
// docEl.style.fontSize = 100 * 320 / sWide + "px"
// } else {
// if (clientWidth > 540) {
// docEl.style.fontSize = 100 * 540 / sWide + "px"
// } else {
// docEl.style.fontSize = 100 * (clientWidth / sWide) + "px"
// }
// }
docEl.style.fontSize = 100 * (clientWidth / sWide) + "px"
};
if (!doc.addEventListener) {
return
}
win.addEventListener(resizeEvt, recalc, false);
doc.addEventListener("DOMContentLoaded", recalc, false)
})(document, window);
使用时直接饮用toast文件,调用函数即可:
------例如:Toast(“服务器开小差了,请您稍后重试!”, 3000, 2.7);
不足之处,请各位行业同事,大牛多多指教!