微信H5开发问题总结

最近一段时间都在做基于微信的一些推广、宣传的H5页面的开发,所以开个帖来总结一下遇到的一些问题。

一、微信H5在IOS中出现滚动不流畅的问题

  -webkit-overflow-scrolling : touch;

二、css隐藏滚动条

::-webkit-scrollbar{
display:none;  // 大部分机型上生效,ios上无效
width:0 !important;  // chrome 和 safari
}
-ms-overflow-style:none;  //  IE10+
overflow:-moz-scrollerbars-none; // firefox

备注:这种做法在ios上无效。

三、锁屏或者后台运行微信时,背景音乐仍在播放

visibilitychange 事件。visibilitychange事件在锁屏或者切换后台运行微信时都会触发。
document.hidden 属性。document.hidden属性记录当前文档是否隐藏。

document.addEventListener("visibilitychange",()=>{
    if(document.hidden){   // 如果锁屏或者后台运行,暂停背景音乐
        bg.stop()
    }else{
        this.fallBackPlay(); // 如果不是,回弹之前的状态。
    }
});

四、使用vue-router时,用push()进行路由导航,ios手机底部出现地址导航栏

目前没有找到更好的解决方法。
如果需要使用vue-router进行路由管理,可以使用replace()方法代替。
replace()不记录地址历史,所以微信不会出现地址历史导航记录。

五、<input>标签在flex布局中不能自适应

在<input>标签外包一个div,div的flex设为1,<input>的width设为100%。

六、轨迹运动

元素沿轨迹运动可以通过offset-pathoffset-distance实现。

七、点击input元素聚焦,元素没有出现在可视区域

//微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法
window.addEventListener("resize", function() {
    if(document.activeElement.tagName == "INPUT" || document.activeElement.tagName == "TEXTAREA") {
        window.setTimeout(function() {
            document.activeElement.scrollIntoViewIfNeeded();
        }, 0);
    }
})

使用scrollIntoViewIfNeeded 和 scrollIntoView 方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于css常见问题,大多是移动端的。 简单的排版规则:条目与条目之间空两行,每条内容部分分段空一行。标点符号全部用...
    苏水儿阅读 10,462评论 0 9
  • Mobile Web Favorites 参与贡献 移动前端开发收藏夹,欢迎使用Issues以及 Pull Req...
    柴东啊阅读 4,214评论 0 2
  • 相关知识点 移动端、 适配(兼容)、 ios点击事件300ms延迟、 点击穿透、 定位失效...... 问题&解决...
    sandisen阅读 25,703评论 3 67
  • meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 忽略将页面中的数字识别为电话号码 忽略And...
    Mycro阅读 3,635评论 0 2
  • 七律•蔷薇花又开 林忠顺 谁说四月芳菲尽,篱外蔷薇一夜开。 恰似和风吹暖起,偶而细雨润香来。 身边大美言乏力,书里...
    林忠顺阅读 4,442评论 0 5