移动端开发的一些技巧总结(2)

总结一下一些知识。

1.利用CSS穿透

常见发生场景:假如我们需要通过input,type=‘file’来上传文件,而这个input的默认样式,可以说是非常地“不人道”。所以我们希望通过一张图片,与这个input大小一样,位置一致地盖在上面。这个时候,显然,这个时候点击图片,input是不会起作用的。就是因为img隔绝了click的穿透,而我们希望的是,这个img只是视觉上遮挡了input的样式,但是点击的时候还是点击到input。所以,只要让img可穿透即可。

css代码如下:

img{pointer-events: none;}

2.实现自定义原生select控件的样式

由于select移动端原生样式很丑,但是原生弹出效果是符合我们设计的原则。直接修改select的样式的时候,一个奇怪的现象出现了,在chrome上调试的时候,自己定义的样式起了作用,在Android手机上也起了作用,但是到了ios手机上就不行了,典型的不兼容问题,这个时候禁用原生的样式即可。

css代码如下:

select{-webkit-appearance: none;}

3.文本溢出处理

移动设备相对来说页面较小,很多时候显示的一些信息都需要省略部分。最常见的是单行标题溢出省略,多行详情介绍溢出省略。

css代码如下:

//单行
.single{
   overflow:hidden;
   white-space:nowrap;
   text-overflow:ellipsis;
}
//多行
.more{
    display:-webkit-box !important;
    overflow:hidden;
    text-overflow:ellipsis;
    work-break;break-all;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2; //指定行数
}

4.300毫秒的故事

移动设备访问的web页面都是pc上的页面。在默认的viewport(980px)的页面往往都是需要“双击”或“捏开”放大页面来看清页面。而正是为了确认用户是“双击”还是“单击”。safari需要个300ms的延迟来判断。而后来的iphone也一直沿用这样的设计,再后来android也沿用了这样的设计。于是,“300ms的延迟”就成了一道规范。

处理方法:

使用自定义Tap事件代替click事件。 原理:在touchstart、touchend时记录时间、手指位置,在touchend时进行比较,如果手指位置为同一位置(或允许移动一个非常小的位移值)且时间间隔较短(一般认为是200ms),且过程中未曾触发过touchmove,即可认为触发了手持设备上的click,一般称它为“tap”。  

5.Tag透传的解决方案

①.使用缓动动画,过渡300ms的延迟。

②.中间层dom元素加入,让中间层接受这个“穿透”事件,稍后隐藏。

③.“上下”都使用tap事件,原理上解决tap透传事件(但不可避免原生标签的click事件)。

④.改用Fastclick的库。

6.开启弹性滚动

css代码如下:

body{
   overflow:scroll;
   -webkit-overflow-scrolling:touch;
}

注意:Android不支持原生的弹性滚动,但可以借助第三方库iScroll来实现。

7.点击不灵敏

起因:由于使用touch触发自定义tap事件,提速约200ms,但是touch事件对点击区域要求更大,偶有不触发。

解决方案:

①同时使用touchend和click触发tap事件,如果touchend已经处理,则click不处理。

②全局捕获click事件,如果click事件和tap事件的点击坐标一致,且相差不到1s。则在捕获阶段阻止事件默认行为的同时取消冒泡。

8.chrome调试快捷键

①ctrl+shift+f  全文查找

②ctrl+o  查找文件名

③ctrl+shift+o 查找js函数名  

9.弹性图片

主要用在百分比布局中,用一个父标签包裹img标签,父元素的宽度用媒体查询来改变。

css代码如下:

img{
  max-width:100%;
}

10.一像素边框设置

很多时候,想保持边框的大小在任何设置上都是1px,但是因为1px使用2dp渲染,也就是说会显示为2px大小。所以,要采用css3缩放一下。

css代码如下:

.folder li{
   position:relative;
    padding:5px;
}
.folder li+li:before{
    position:absolute;
    top:-1px;
    left:0;
    content:‘ ‘;
    width:100%;
    height:1px;
    border-top:1px solid #ccc;
    -webkit-transform:scaleY(0.5);
}

  

努力学习。。。

  

时间: 2024-10-11 01:46:12

移动端开发的一些技巧总结(2)的相关文章

移动端开发的一些技巧

开篇语 最近接手了一个移动端的项目.个人感觉是自己做得比较快而且比较健壮的一个...移动端最主要就是页面要适用不同的手机屏幕,ipad等.下面就分享一些技巧,让你不依赖任何框架高效地搭建自己的项目. 一.样式按组件或板块分文件写再合成 ①设置各种变量 采用scss或者less来写css代码有很多好处.这里就不详细说. 我们拿到设计图的第一步,就是要分析各个页面之间有哪些模块.哪些样式.哪些颜色是一样的.一般情况下,为了各个页面的风格统一,各个页面上的主颜色应该都是一致的,而且好些页面都会用到一些

移动端开发的一些技巧总结

开篇语 最近接手了一个移动端的项目.个人感觉是自己做得比较快而且比较健壮的一个...移动端最主要就是页面要适用不同的手机屏幕,ipad等.下面就分享一些技巧,让你不依赖任何框架高效地搭建自己的项目. 一.样式按组件或板块分文件写再合成 ①设置各种变量 采用scss或者less来写css代码有很多好处.这里就不详细说. 我们拿到设计图的第一步,就是要分析各个页面之间有哪些模块.哪些样式.哪些颜色是一样的.一般情况下,为了各个页面的风格统一,各个页面上的主颜色应该都是一致的,而且好些页面都会用到一些

移动端开发问题及技巧汇总

1.移动页面点击出现页面穿透问题: http://www.tuicool.com/articles/6NfaUnM 2.轮播组件swiper动态加载数据左右不好滑动问题: http://www.cnblogs.com/xiongmaolala/p/4692099.html 3.微信页面中ios自动识别数字标蓝有下划线,点击提示拨打电话问题: <!-- 禁止iphone识别数字并出现下划线 拨打电话功能 --> <meta name="format-detection"

备:移动端开发资源和小技巧

(在github上看到的,转摘而来,如果有版权问题请联系我[email protected]) mobileTech A useful tools or tips list for mobile web application developing 这个项目收集移动端开发所需要的一些资源与小技巧 移动端统计 (from BiosSun) 可基于下方所列出的统计数据来决定您要兼容的设备及浏览器. 百度移动统计 友盟指数 CNZZ 桌面及移动端浏览器统计 全球移动端浏览器统计 工具类网站 HTML5

web移动端开发技巧与注意事项汇总

一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览 2.winphone系统a.input标签被点击时产生的半透明灰色背景怎么去掉

[转]15个关于Chrome的开发必备小技巧

谷歌Chrome,是当前最流行且被众多web开发人员使用的浏览器.最快六周就更新发布一次以及伴随着它不断强大的开发组件,使得Chrome成为你必备的开发工具.例如,在线编辑CSS,console以及debugger这些常用的调试技术,或许你已经了解.在本篇文章中,我们将介绍15个炫酷且实用的技巧,这将更快的提高你的开发效率. 一.快速查找文件 如果你使用过Sublime,那么你会知道'Go to anything'的强大.没错,Chrome现在也有了这一功能. 操作如下: 1.F12打开你的Ch

移动端开发流程

和PC端网站的设计和开发相比,移动客户端的开发工作,对绝大多数人来说,绝对是一个崭新的行当. 那么,当我们每天在iphone上,在各种安卓在各种pad上习以为常的刷着微博看着网文切着西瓜找着你妹的时候,当一大波人信心满怀的开始步入这个看似熟悉,或者说"简单"的工作中后,突然发现,悲催,完全不是那么回事嘛! 相信很大一部分产品或者设计或者开发人员是从之前的传统互联网"出家"过来的,当然,这包括我,还有身边很多很多人.总之,这是一个坑,因为,APP,这个"看上

关于近期对于移动端开发的一些看法

首先移动端开发最基本的就是尺寸问题: <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> 这行代码是肯定知道要加的,但是我们还会面临在不同尺寸的屏幕上对应尺寸的大小变化.对于这个问题我之前看过很多网站对于这个的处理,我主要是采用小米官网对于这个的修改,单位

移动端开发注意事项记录

移动端开发注意事项记录 1.移动端WEB开发常见问题 2.webapp开发技巧 3.移动端开发需要注意的20个要点 4.移动平台3G手机网站前端开发布局技巧汇总