H5移动端中必备技能

Meta基础知识:

  • H5页面窗口自动调整到设备宽度,并禁止用户缩放页面<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
  • 可隐藏地址栏,仅针对IOS的Safari(注:IOS7.0版本以后,safari上已看不到效果) <meta name="apple-mobile-web-app-capable" content="yes" />
  • 仅针对IOS的Safari顶端状态条的样式(可选default/black/black-translucent ) <meta name="apple-mobile-web-app-status-bar-style" content="black" />
  • IOS中禁用将数字识别为电话号码/忽略Android平台中对邮箱地址的识别 <meta name="format-detection"content="telephone=no, email=no" />
  • 启用360浏览器的极速模式(webkit) <meta name="renderer" content="webkit">
  • 避免IE使用兼容模式 <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 <meta name="HandheldFriendly" content="true">
  • uc强制竖屏 <meta name="screen-orientation" content="portrait">
  • QQ强制竖屏 <meta name="x5-orientation" content="portrait">
  • UC强制全屏 <meta name="full-screen" content="yes">
  • QQ强制全屏 <meta name="x5-fullscreen" content="true">
  • UC应用模式 <meta name="browsermode" content="application">
  • QQ应用模式 <meta name="x5-page-mode" content="app">
  • windows phone 点击无高光 <meta name="msapplication-tap-highlight" content="no">

拨打电话,发送短信,邮件设置

 一、打电话

<a href="tel:0755-10086">打电话给:0755-10086</a>

 二、发短信,winphone系统无效

<a href="sms:10086">发短信给: 10086</a>

三、写邮件

<a href="mailto:[email protected]">点击我发邮件</a>

一个完整的例子,包含收件人,抄送者,秘密抄送者,主题,内容。

<a href="mailto:[email protected];[email protected][email protected]&[email protected]&subject=[邮件主题]&body=腾讯诚邀您参与%0A%0Ahttp://www.baidu.com%0A%0A<img src=‘images/1.jpg‘ />">点击我发邮件</a>

 移动端touch事件

touchstart——当手指触碰屏幕时候发生。不管当前有多少只手指

touchmove——当手指在屏幕上滑动时连续触发。通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动

touchend——当手指离开屏幕时触发

touchcancel——系统停止跟踪触摸时候会触发。例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用

 

//TouchEvent说明:

touches:屏幕上所有手指的信息

targetTouches:手指在目标区域的手指信息

changedTouches:最近一次触发该事件的手指信息

touchend时,touches与targetTouches信息会被删除,changedTouches保存的最后一次的信息,最好用于计算手指信息

//参数信息(changedTouches[0])

clientX、clientY在显示区的坐标

target:当前元素

//事件响应顺序

ontouchstart  > ontouchmove  > ontouchend > onclick

超实用的CSS样式

// 禁止长按链接与图片弹出菜单

a,img { -webkit-touch-callout: none }  

// 禁止ios和android用户选中文字

html,body {-webkit-user-select:none; user-select: none; }

// 改变输入框placeholder的颜色值

::-webkit-input-placeholder { /* WebKit browsers */color: #999; }

:-moz-placeholder { /* Mozilla Firefox 4 to 18 */color: #999; }

::-moz-placeholder { /* Mozilla Firefox 19+ */color: #999; }

:-ms-input-placeholder { /* Internet Explorer 10+ */color: #999; }

input:focus::-webkit-input-placeholder{ color:#999; }

例子:当我们对input的placeholder的样式进行设置时,代码input::-webkit-input-placeholder {color: #FF0000;}

知识点:单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。

css伪类:CSS 伪类用于向某些选择器添加特殊的效果。

css伪元素:CSS 伪元素用于向某些选择器设置特殊效果。

// android上去掉语音输入按钮

input::-webkit-input-speech-button {display: none}

// 阻止windows Phone的默认触摸事件

/*说明:winphone下默认触摸事件事件使用e.preventDefault是无效的,可通过样式来禁用,如:*/

html { -ms-touch-action:none; } //禁止winphone默认触摸事件

//取消input在ios下,输入的时候英文首字母的默认大写

<input autocapitalize="off" autocorrect="off" />

//IOS有拍照、录像、选取本地图片功能,部分Android只有选择本地图片功能。Winphone不支持

<input type="file" accept="images/*" />

<input type="file" accept="video/*" />

//屏幕旋转的事件和样式

//JS处理

function orientInit(){

   var orientChk = document.documentElement.clientWidth > document.documentElement.clientHeight?‘landscape‘:‘portrait‘;

   if(orientChk ==‘lapdscape‘){

       //这里是横屏下需要执行的事件

   }else{

       //这里是竖屏下需要执行的事件

   }

}

 

orientInit();

window.addEventListener(‘onorientationchange‘ in window?‘orientationchange‘:‘resize‘, function(){

   setTimeout(orientInit, 100);

},false)    

 

//CSS处理

//竖屏时样式

@media all and (orientation:portrait){   }

//横屏时样式

@media all and (orientation:landscape){   }

//audio元素和video元素在ios和andriod中无法自动播放

//音频,写法一

<audio src="music/bg.mp3" autoplay loop controls>你的浏览器还不支持哦</audio>

 

//音频,写法二

<audio controls="controls">

   <source src="music/bg.ogg" type="audio/ogg"></source>

   <source src="music/bg.mp3" type="audio/mpeg"></source>

   优先播放音乐bg.ogg,不支持在播放bg.mp3

</audio>

 

//JS绑定自动播放(操作window时,播放音乐)

$(window).one(‘touchstart‘, function(){

   music.play();

})

 

//微信下兼容处理

document.addEventListener("WeixinJSBridgeReady", function () {

   music.play();

}, false);

//小结

//1.audio元素的autoplay属性在IOS及Android上无法使用,在PC端正常

//2.audio元素没有设置controls时,在IOS及Android会占据空间大小,而在PC端Chrome是不会占据任何空间

//IOS下可使用 -webkit-text-size-adjust禁止用户调整字体大小

body { -webkit-text-size-adjust:100%!important; }

//JS判断设备

function deviceType(){

   var ua = navigator.userAgent;

   var agent = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];    

   for(var i=0; i<len,len = agent.length; i++){

       if(ua.indexOf(agent[i])>0){        

           break;

       }

   }

}

deviceType();

window.addEventListener(‘resize‘, function(){

   deviceType();

})

//JS判断微信浏览器

function isWeixin(){

   var ua = navigator.userAgent.toLowerCase();

   if(ua.match(/MicroMessenger/i)==‘micromessenger‘){

       return true;

   }else{

       return false;

   }

}

//开启硬件加速

//目前,像Chrome/Filefox/Safari/IE9+以及最新版本Opera都支持硬件加速,当检测到某个DOM元素应用了某些CSS规则时就会自动开启,从而解决页面闪白,保证动画流畅。

.css {

   -webkit-transform: translate3d(0,0,0);

   -moz-transform: translate3d(0,0,0);

   -ms-transform: translate3d(0,0,0);

   transform: translate3d(0,0,0);

}

//渲染优化

//1.禁止使用iframe(阻塞父文档onload事件)

//2.禁止使用gif图片实现loading效果(降低CPU消耗,提升渲染性能)

//使用CSS3代码代替JS动画;

//开启GPU加速;

   //使用base64位编码图片(不小图而言,大图不建议使用)

   // 对于一些小图标,可以使用base64位编码,以减少网络请求。但不建议大图使用,比较耗费CPU。小图标优势在于:

   //1.减少HTTP请求;

   //2.避免文件跨域;

   //3.修改及时生效;

//画三角形

做移动端的,经常会遇到小三角,你们还是按部就班的切图做背景吗,现在有全新的css知识来满足我们的要求。

  这是一个li,直接贴代码:

li:before {
content: ‘‘;
width: 0;
height: 0;
bottom: 33px;
left: -18px;
position: absolute;
border: 7px solid transparent;
border-right: 12px solid #999;
}

时间: 2024-01-05 01:31:32

H5移动端中必备技能的相关文章

vue项目中h5移动端中通过flex布局实现首尾固定,中间滚动(借鉴)

html中 <div class="flexLayoutr"> <div class="div_head"></div> <div class="div_content">中间区域</div> <div class="div_foot"></div> </div> css中 *{ margin: 0; padding: 0; } .

H5移动端IOS/Android兼容性总结,持续更新中…

H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进行各种操作转化,而在IOS下为invalid date,获取到的时间戳为NaN,确实有点坑啊,只能识别new Date("2018/07/01 08:00:00")这种的,所以需要转化一下,解决方法为统一增加.replace(/-/g,'/'): new Date("2018-0

java高并发系列 - 第15天:JUC中的Semaphore,最简单的限流工具类,必备技能

这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能允许一个线程访问一个资源,而信号量可以控制有多少个线程可以访问特定的资源. Semaphore常用场景:限流 举个例子: 比如有个停车场,有5个空位,门口有个门卫,手中5把钥匙分别对应5个车位上面的锁,来一辆车,门卫会给司机一把钥匙,然后进去找到对应的车位停下来,出去的时候司机将钥匙归还给门卫.停车

微信公众平台小程序开发大牛必备技能

近期在热议微信公众平台小程序,很多程序猿GG们在说不就是网页版的软件么~~~真 是"材"大气粗.然而重点来了~~~程序猿GG们真的会开发么?不要随意吹牛好不好? 接下来,我给程序猿GG们整理了制作小程序的武功秘籍,要知道,H5和JS人才将会很 抢手哟,马上储备技能先~~ 首先,要知道小程序是基于H5开发的,但是用了JS-SDK的框架~~~ 其次,找修炼秘籍~~近乎赠送的价格,给你一身养家本领,还不快快领走~~ 1.    H5精英必备技能: 张伟芝老师的<结合MUI框架完成HTM

我的阿里梦——淘宝前端必备技能

每天下班路过阿里,看到里面的灯火嘹亮,心里惴惴不安,我也想进阿里,怎么破. 阿里的前端是不是都是大牛?我给他们的差距到底有多大,这个问题困扰我很久,然而,百无聊赖的我习惯性的打开淘宝官网,然后习惯性的f12,我发现了新大陆…… 我仔细看看,很迷茫,看懂的不多,不过,我决定,慢慢来,先搞懂他们都是干啥的,然后晚点偷偷的学. 下面,让小屌丝给你们整理下他们都是干啥用的吧. 1: Angula AngularJS诞生于Google是一款优秀的前端JS框架,已经被用于Google的多款产品当中.Angu

详解linux运维工程师入门级必备技能

详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 linux运维人员常用工具介绍 1.很多地方经常会用到的rsync工具 实施几台服务器的同步效果 我们公司就是使用这个工具完成服务器的游戏的服务端和客户端同步,有几个文章例子 rsync 强化技术(手动修改端口开启防火墙的情况下)并且通过脚本只同步需要的服务器 inotify+rsync+mutt+

【转载】运维职业向!我是怎么入得运维行业?运维工程师入门必备技能以及打怪升级篇

前言:转载 陈浩一个从事安全运维向的前辈文章.写的很好.人非常nice,遇到了问题,qq上很快就回复了我. 大道三千 入门最难,凡事入了行,也就什么都好说了,好的自然不断努力奋斗修行,不好的自然很快就被淘汰.恭谨勤勉,时不我待~ ---------------------------------------------------------------------------------------------------------------------------------------

财务必备技能 如何将pdf转换成excel

虽然pdf文件有各种的优点,但是编辑权限也是事实,将pdf转换成其他格式文件是不可避免的,之前小编给大家讲解过很多使用迅捷pdf转换器将pdf转换成word或是word转换成pdf的方法.今天就不局限于pdf和word的转换了,这里给大家一个新的转换形式,那就是pdf表格文件转换成excel,这可是财务必备技能之一,不会这种转换怎么看怎么亏. 如何将pdf转换成excel,pdf转excel操作步骤详解: 1.在迅捷pdf转换器的界面当中选择"文件转excel",之前我们在很多的文章中

mysql的介绍;安装及基本配置;mysql数据库运行必备技能

一.MySQL的介绍 1. 数据库:数据库集中存放位置 1) 常见的数据库类型:关系型(mysql.oracle.SQLserver2008,DB2),树型(windows注册表).非关系型(NoSQL). 2) 关系型数据库对象:数据记录-存->表à存à数据库:表分为数据库,关系表 2. MySQL是开源的关系型数据软件,目前由oracle公司维护,特点是:多线程.多用户.基于C/S架构(客户端/服务器),简单易用.查询速度快,安全可靠. 二.安装及基本配置: 1. 安装 1) 安装依赖ncu