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:863139978@qq.com">点击我发邮件</a>

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

<a href="mailto:863139978@qq.com;384900096@qq.com?cc=zhangqian0406@yeah.net&bcc=993233461@qq.com&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;
}

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

  1. 百度Hr分享,一个合格的数据工程师简历中必备技能?

    如果你是一名数据科学方面的求职者,你肯定想知道在简历上写些什么才能获得面试的机会:如果你想进入这个领域,你一定想知道具备哪些技术才能成为一名有竞争力的求职者. 在本文中,我们对Indeed中一千份数据 ...

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

    html中 <div class="flexLayoutr"> <div class="div_head"></div> & ...

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

    H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进 ...

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

    这是java高并发系列第15篇文章 Semaphore(信号量)为多线程协作提供了更为强大的控制方法,前面的文章中我们学了synchronized和重入锁ReentrantLock,这2种锁一次都只能 ...

  5. java高并发系列 - 第16天:JUC中等待多线程完成的工具类CountDownLatch,必备技能

    这是java高并发系列第16篇文章. 本篇内容 介绍CountDownLatch及使用场景 提供几个示例介绍CountDownLatch的使用 手写一个并行处理任务的工具类 假如有这样一个需求,当我们 ...

  6. Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码

    Android java程序员必备技能,集合与数组中遍历元素, 增强for循环的使用详解及代码 作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 For ...

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

    详解linux运维工程师入门级必备技能 | 浏览:659 | 更新:2013-12-24 23:23 | 标签:linux it自动化运维就是要很方便的运用各种工具进行管理维护,有效的实施服务器保护 ...

  8. 【转载】rem自适应布局-移动端自适应必备

    原文链接:rem自适应布局-移动端自适应必备 版权所有,转载时请注明出处,违者必究. 由于移动端特殊性,本文讲的是如何使用rem实现自适应,或叫rem响应式布局,通过使用一个脚本就可以rem自适应,不 ...

  9. 自动化部署必备技能—部署yum仓库、定制rpm包

    部署yum仓库.定制rpm包 目录 第1章 扩展 - yum缓存 1.1 yum缓存使用步骤... 1 1.1.1 导言... 1 1.1.2 修改配置文件... 1 1.1.3 使用缓存... 1 ...

随机推荐

  1. Android学习日记

    1.[2013-10-03 13:45:38 - FileManager] res\drawable-xxhdpi\FileManager.jpg: Invalid file name: must c ...

  2. 移动互联网公司如何将BPM流程管理变身移动化?

    背景介绍 OPPO是广东欧珀移动通信有限公司的旗下品牌,成立于2004年,是一家全球性的智能终端和移动互联网公司,致力于为客户提供最先进和最精致的智能手机.高端影音设备和移动互联网产品与服务,业务覆盖 ...

  3. 第八篇.Bootstrap下拉菜单

    给div一个class “dropdown”,将下拉菜单放在这个div里就可以显示bootstrap的下拉菜单. <div class="dropdown"> < ...

  4. WPF学习笔记1---初接触

    刚刚接触WPF,微软的一套东西.WPF最大的特点就是UI设计与代码逻辑的完全剥离.这样美工和程序员的分工就变得非常清楚.因为界面和程序的耦合度很低,也增加的代码的灵活性和可重用性. 微软为WPF的UI ...

  5. Apache php Mysql部署(一)下载安装

    前言 最近公司需要开发一个网站,但是又有特殊要求:不能使用java.只能在Windows平台部署.没方法,只能选择了Apache+php+Mysql的方案. 不知道有没有更好的,听所golang挺不错 ...

  6. JavaScript—赋值表达式

      赋值表达式的运算顺序是从右到左的,因此,可以通过以下方法对多个变量赋值 1 i=j=k=0;//也就是把三个变量初始化为0 赋值表达式中的递增和递减 n++和++n的区别:     简单来说,根据 ...

  7. linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释

    与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等: /etc/passwd 和/etc/s ...

  8. mysql入门1

    进入mysql数据库:进入mysql安装时的目录bin文件夹内

  9. 关于ajax跨域请求(cross Domain)

    Cross Domain AJAX主要就是A.com网站的页面发出一个XMLHttpRequest,这个Request的url是B.com,这样的请求是被禁止的,浏览器处于安全考虑不允许进行跨域访问, ...

  10. Java集合运用技巧

    需要唯一吗? 需要:Set 需要制定顺序吗? 需要:TreeSet 不需要:HashSet 但是想要一个和存储一致的顺序(有序):LinkedHashSet 不需要:List 需要频繁增删吗? 需要: ...