移动开发时遇到的一些小问题总结2017.12.21

1、弹出模态框,底部内容禁止滑动。

一开始想到的就是点击按钮,模态框出现时,给body内容加上overflow:hidden,在谷歌模拟器上这样是没有问题的,但是真机测试中不行,需要在当前模态框中加入

$('模态框').on('touchmove', function(e) {

e.preventDefault();

});

这个问题在移动开发中经常遇到,网上也有很多解决方法,但是今天终于找到便捷的解决方法了!

2、可输入的div

应用场景:在表单页面,需要输入文字很多的文本框,input不能换行,textarea虽然可以,但是它的高度不能随文本增加而增高(当然js可以实现),但是可以css实现的就不需要js了

处理方法:给div增加 contenteditable="true" 属性,但无法去除从网页粘贴过来内容的格式,用contenteditable="plaintext-only",既可以只粘贴文字了,需要注意的是,在ios中,需要给当前元素加-webkit-user-select:text;属性,否则,会弹出软键盘,但是输入不了文字。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title></title>
        <style type="text/css">
            div{
                width:300px;
                border:1px solid #666;
                font-size:20px;
                color:blue;
                line-height:40px;
                outline: none;
       
              padding: 10px;
            }
            div:empty:before{
               content: attr(placeholder);
               color:#ccc;
            }
            div:focus:before{
               content:none;
            }
        </style>
    </head>
    <body>
        <div contenteditable="plaintext-only" placeholder="请输入内容"></div>
    </body>
</html>

3、 打电话,发短信

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

4、rem px 移动端适配问题
移动端字体单位font-size选择px还是rem
  对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可
  对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较大的设备

@media screen and (max-width: 321px) {
    body {
        font-size: 16px;
    }
}
@media screen and (min-width: 321px) and (max-width: 400px) {
    body {
        font-size: 17px;
    }
}
@media screen and (min-width: 400px) {
    body {
        font-size: 19px;
    }
}
<script>
    // px与rem单位的换算
    (function(){
        document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px';
    })();
</script>

5、移动端 1px border 实现
部分安卓机器(比如小米)的分辨率低,如果border的宽度小于1px。安卓机出现一种边框消失了的现象。样式上有点奇怪,IOS没有这个问题。
由于设备高分辨率屏的原因,逻辑像素的 1px 的 border 在移动设备上会用两个或三个物理像素来表示,所以看起来会感觉很粗。解决方案有很多,但兼容性最好的方案是用伪元素的 box-shadow 或 border 实现 border,然后用 transform: scale(.5) 缩小到原来的一半
6、键盘

<input type="number" pattern="[0-9]*" />
<input type="password" pattern="[0-9]*" />

注意:只有number或者tel还是不够,只有加入正则,ios才会出现九宫格
7、flex布局

display: flex;
display: -webkit-box;
display: -webkit-flex; 

注: 如果用flx布局必须要加后面两行,不加的话,ios版本为8的苹果机子页面会错乱(很严重!!!)
8、添加meta,使得网页在手机端能正常浏览

<!-- 设置缩放 -->
<meta name="viewport" content="width=device-width, initial-scale=1, 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" />

9、使用rem时js动态计算自动生成meta标签,这里是一段阿里高清方案,使用时需要放到文档头部,此时就不用再写meta标签了

!(function(e) {
    function t(a) {
        if (i[a]) return i[a].exports;
        var n = (i[a] = { exports: {}, id: a, loaded: !1 });
        return e[a].call(n.exports, n, n.exports, t), (n.loaded = !0), n.exports;
    }
    var i = {};
    return (t.m = e), (t.c = i), (t.p = ''), t(0);
})([
    function(e, t) {
        'use strict';
        Object.defineProperty(t, '__esModule', { value: !0 });
        var i = window;
        (t['default'] = i.flex = function(normal, e, t) {
            var a = e || 100,
                n = t || 1,
                r = i.document,
                o = navigator.userAgent,
                d = o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),
                l = o.match(/U3\/((\d+|\.){5,})/i),
                c = l && parseInt(l[1].split('.').join(''), 10) >= 80,
                p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi),
                s = i.devicePixelRatio || 1;
            p || (d && d[1] > 534) || c || (s = 1);
            var u = normal ? 1 : 1 / s,
                m = r.querySelector('meta[name="viewport"]');
            m || ((m = r.createElement('meta')), m.setAttribute('name', 'viewport'), r.head.appendChild(m)),
                m.setAttribute(
                    'content',
                    'width=device-width,user-scalable=no,initial-scale=' +
                        u +
                        ',maximum-scale=' +
                        u +
                        ',minimum-scale=' +
                        u
                ),
                (r.documentElement.style.fontSize = normal ? '50px' : a / 2 * s * n + 'px');
        }),
            (e.exports = t['default']);
    }
]);
flex(false, 100, 1);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342