栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

移动端原生H5开发心得和干货(持续更新2018-08-07)

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

移动端原生H5开发心得和干货(持续更新2018-08-07)

更新日志
  1. 修改HTML项 5
  2. 新增配置项 7
配置项 1. Viewport





不设置的话,相当于用手机访问PC端页面一样,无初始缩放和页面宽度

2. Apple设备使用Web App模式(一般用于SPA应用,因为如果在里面点击还是跳转其他链接的话,还是会从Safari打开的)









在Safari浏览器点击分享按钮-添加到主屏幕,然后在桌面打开

3. 强制浏览器全屏(UC/QQ)

 

 







就是浏览器全屏,隐藏浏览器上下的状态栏

4. 忽略



某些浏览器识别成功之后会将号码或者邮箱转换成a标签

5. Windows Phone点击无阴影

类似于css的-webkit-tap-highlight: transparent

6. 清除浏览器缓存



手机页面通常在第一次加载后会进行缓存,然后每次刷新会使用缓存而不是去重新向服务器发送请求。如果不希望使用缓存可以设置no-cache

7. 为手持设备定制特殊样式

HTML项 1. 调用系统功能
打电话给: 10086

发短信给: 10086

发邮件给:839626987@qq.com


isQQ返回是否是手机QQ内置浏览器,而不是QQ浏览器

4. 监听页面可见性变化
  • 方法1:
 // 当前窗口得到焦点
window.onfocus = function () {}

// 当前窗口失去焦点
window.onblur = function () {}
  • 方法2:
document.addEventListener('visibilitychange', function () {
  var hidden = document.hidden;
  if (hidden) {
    // 当前窗口失去焦点
  } else {
    // 当前窗口得到焦点
  }
});

页面最小化、切换标签、切换应用

5. Apple设备zepto/jquery事件委托bug
$(document).on('click', '.btn', function () {
  console.log(this)
})

.btn为div标签,不管是异步添加的还是同步添加的.div,在Iphone上都无法触发该事件,但是Android、PC却可以,上网找了一下资料,解决办法有两种:

  • 给.btn加个css属性cursor: pointer;
  • 换成a或者button标签;
6. 禁止页面滚动
var roller = {
  handle(e) {
    e.preventDefault()
  },
  lockRoll() {
    document.addEventListener("touchmove", handle, false)
  },
  cureRoll() {
    document.removeEventListener("touchmove", handle, false)
  }
}

一般用于弹出蒙层(mask)之后禁止,消失就恢复

7. 监听屏幕旋转事件
window.addEventListener('onorientationchange', callback, false);

function callback () {
  let orientation = window.orientation;
  if(orientation  == 0 || orientation  == 180) {
    // 竖屏
  } else {
    // 横屏
  }
}
8. 重力感应
window.addEventListener('deviceorientation', callback, false);

function callback (e)  {
  var data = e.accelerationIncludingGravity;
  console.log(data) // 这里有你想要的数据
}

一个不错的库http://www.jq22.com/jquery-info178

9. 事件穿透

点击穿透问题:点击蒙层(mask)上的关闭按钮,蒙层消失后发现触发了按钮下面元素的click事件,解决办法:

  • 只用touch
  • 只用click
  • touch延迟350ms再隐藏蒙层(mask)
  • fastclick.js
  • zepto-移动端的Jquery
  • swiper-轮播图
  • clipboard.js-复制剪贴板
  • qrcode.js-动态生成二维码
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245366.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号