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. lnmp 设置ci pathinfo和去掉index.php

    LNMP上各个版本pathinfo各个版本的设置基本一样: lnmp v1.1上,修改对应虚拟主机的配置文件去掉#include pathinfo.conf前面的#,把try_files $uri = ...

  2. arrayLen

    var i;for (i = categoryList.length - 1; i >= 0; i -= 1) { var categoryValue=categoryList[i]; if ( ...

  3. 判断IE版本的HTML语句详解,如:[if lte IE 9]……[endif]

    我们常常会在网页的HTML里面看到形如[if lte IE 9]……[endif]的代码,表示的是限定某些浏览器版本才能执行的语句,那么这些判断语句的规则是什么呢?请看下文: <!--[if ! ...

  4. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  5. 百度echarts地图扩展动态加载geoCoord

    var data={}; for(var i=0;i<result.length;i++){ data[(""+result[i].name+"")]=e ...

  6. HDU 2669

    题目大意: 已知线性方程ax+by=1; 输入a, b的值, 要求输出整数解x, y的值(输出x, y的最小整数解), 若没有解, 输出"sorry".   分析: 求线性方程的解 ...

  7. html 学习(一)

    一.用CSS实现如下布局,使用三个div 代码实现如下: 说明: 1.margin-left:110px; _margin-left:107px; margin-left:110px; 所有浏览器都要 ...

  8. ado.net中,数据的批量处理

    //btBigImport按钮点击事件 private void btBigImport_Click(object sender, RoutedEventArgs e)        { //连接字符 ...

  9. IOS UITableView移除底部空白行

    tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

  10. hashmap 读取

    hashTable hashSet 都差不多 以hashmap为例,底层是一个散列表 数组,然后数组存出一个entry对象,对象中有两个泛型属性,一个可以指向自身类型的引用,这样就可以在每一个数组的位 ...