移动web开发经验总结(1)
1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, width=device-width">width可是宽度,initial-scale初始化缩放比例,maximum-scale允许用户缩放的最大比例,minimum-scale允许用户缩放的最小比例,user-scalable是否允许用户缩放。
2.-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios点击元素时出现的阴影。
3.-webkit-appearance:none可以同时屏蔽输入框怪异的内阴影。
4.-webkit-transform:translate3d(0, 0, 0)在ios下可以让动画更加流畅(这个属性会调用硬件加速模式),但是在android下不可乱用,会产生很多见所未见的bug。
5.@-webkit-keyframes可以预定义很多你所想到的动画,然后通过-webkit-transition来调用。
6.-webkit-background-size可以做高清图标,不过一些低版本的android只能识别background-size,所以有必要两个都要写上;用这个属性的时候推荐树勇cover这个值,可以自动去匹配宽和高。
7.多用text-shadow这个属性,可以美化文字效果, border-radius、box-shadow、gradient、border-image,在移动端都可以很好的支持,使用这些属性可以实现很炫丽的按钮。
8.android、ios4及以下,固定宽/高块级元素的overflow:scroll/auto失效,属于浏览器的bug,可借助第三方工具(iScroll)实现。
10.ios5+可以通过scrollTo(0,0)来自动隐藏浏览器地址栏。
11.css3动画会影响你的自动聚焦,所以自动聚焦要在动画执行之前来做,或者直接舍弃。
12.input框会默认呼出,如果想隐藏键盘让其失焦即可。
13.当用iScroll时候,不能使用:focus{outline:0}伪类,否则滑动会卡。
14.使用iScroll的时候,在部分手机(部分小米、三星机型)中click会执行两次,是因为iscroll在判断滑动前,阻止了click事件,然后在滑动后,对原来的click事件进行了重构,在一些设备上并没有将默认的click阻止掉。所以,出现了类似双击的现象。
解决方案:
//1.自己写一个fn-->myclick,然后onclick="myclick();"调用。
var t1 = null;//这个设置为全局
function myclick(){
if (t1 == null){
t1 = new Date().getTime();
}else{
var t2 = new Date().getTime();
if(t2 - t1 < 500){
t1 = t2;
return;
}else{
t1 = t2;
}
}
/*自己的代码*/
} //2.上面的代码,也可以写在iscroll.js(4.2.5)的_end方法中,要注意var t1是全局的
//3.国外论坛在iscroll.js(4.2.5)对应位置添加
topOffset: 0,
checkDOMChanges: false, // Experimental
handleClick: true,
preventGhostClick: false, // prevent ghost clicks?防止2次点击
ghostClickTimeout: 500, // timeout for ghost click prevention设置时间差 /**
* Prevents any real clicks.
* See preventGhostClick portion of _end().
*/
_preventRealClick: function(e) {
if (e._fake !== true) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
e.cancel = true;
return false;
}
},
_end: function (e) {...... ev._fake = true;
if (that.options.preventGhostClick) { //preventGhostClick: true,
// prevent ghost real clicks on body
document.body.addEventListener('click', that._preventRealClick, true);
// until ghost click timeout expires
setTimeout(function () {
document.body.removeEventListener('click', that._preventRealClick, true);
}, that.options.ghostClickTimeout);
}
target.dispatchEvent(ev); //4.使用zepto的tap替换click
15.iOS中禁止用户保存图片、复制图片,img标签指定-webkit-touch-callout为none可以禁止设备弹出列表按钮,这样用户就无法保存/复制你的图片。
16.使用-webkit-user-select: none; 禁止用户进行复制, 选择。
移动web开发经验总结(1)的更多相关文章
- 手机版WEB开发经验分享,手机版网站开发注意事项,网站自适应,手机版网站自适应,移动安卓APP自适应
转自 http://my.oschina.net/cart/blog/282477 做前端开发不短了,用过jQuery Mobile jqMobi 也纯手工写过.. 最后总结如下: jQuery Mo ...
- 移动web开发经验
1. font-family: "Microsoft YaHei",sans-serif;/*第二个是手机的一个默认的字体 手机没有微软雅黑*/ 2.主流手机浏览器内核都为webk ...
- 【转载】移动web开发经验总结
本文出自: http://blog.163.com/hsb001_mobile/blog/static/15524028020111177221254/ 1.-webkit-tap-highlight ...
- 移动web开发经验总结(1) (转)
1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-sca ...
- web开发经验
图片显示不全 网站进行了迁移,更换了新框架,结果出现了图片显示不全的问题,后来发现是nginx权限问题 curl 无报错,无返回 有可能是url错误,而无服务器对错误的url返回空,没返回错误
- 移动web开发经验总结(转)
1.<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, minimum-sca ...
- 一枚招聘信息——微信支付web前端开发工程师【已招到】
已招到 工作地点: 深圳 职位类别: 技术类 招聘人数: 1人 工作职责: 负责微信支付h5应用产品的前端开发:负责微信支付营销活动,h5游戏的开发:负责微信支付内部平台的开发与日常维护 工作要求: ...
- Web开发人员必读的12个网站
The more you actually create, the more you’ll learn.(创造的越多,学习的越多),世界上有无数个开发人员会在网上分享他们的开发经验,我们无法向所有人学 ...
- 那些年做过的 .NET Web 项目和 iOS 之路的一些思考
从2010年3月份出来工作到2015年初,做过的大大小小的 .NET Web 项目如下: (1)售楼系统产品 「Role: Team Member」 (2)中弘合同管理系统 「Role: ...
随机推荐
- imperva 获取gti文档
SSH到设备(MX或GW) 以root用户身份登录MX和GW 运行“impctl support get-tech-info --last-server-archives=5 --caes-numbe ...
- 【内核】linux内核启动流程详细分析【转】
转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...
- Linux Module框架【转】
转自:http://www.cnblogs.com/LittleHann/p/4558719.html catalog 1. 概述 2. 使用模块 3. 插入和删除模块 4. 自动化与热插拔 5. 版 ...
- 使用pandas把mysql的数据导入MongoDB。
使用pandas把mysql的数据导入MongoDB. 首先说下我的需求,我需要把mysql的70万条数据导入到mongodb并去重, 同时在第二列加入一个url字段,字段的值和第三列的值一样,代码如 ...
- 利用JS验证查询参数-选择月份后必须选择年份
js代码: function queryAgentInfo(){ // 标记 var flag=false; //遍历所有月份 $(".month").each(function( ...
- 【前端vue开发】vue子调父 $emit (把子组件的数据传给父组件)
ps:App.vue 父组件 Hello.vue 子组件 <!--App.vue :--> <template> <div id="app"> ...
- python包安装-centos7/windows
1.修改pip源 临时使用: 可以在使用pip的时候在后面加上-i参数,指定pip源 eg: pip install scrapy -i https://pypi.tuna.tsinghua.edu. ...
- Unix IPC之pipe
pipe创建函数: #include <unistd.h> /* Create a one-way communication channel (pipe). If successful, ...
- SQL SERVER 断开所有连接(转)
通过sql server management studio对数据进行管理,比如数据库改名等,经常遇到有正在运行的连接,以致无法操作,这时候断掉所有的连接很有必要.代码如下:(会断掉某个库的所有连接, ...
- Linux基础入门学习笔记之二
第三节 用户及文件权限管理 Linux用户管理 Linux是可以实现多用户登录的操作系统 查看用户 who命令用于查看用户 shiyanlou是当前登录用户的用户名 pts/0中pts表示伪终端,后面 ...