前端开发中,常见的bug解决方案(一)

bug虐我千百遍,我待bug如初恋;

今天整理了一下前端常用的代码片段,相信你肯定能需要的到~

下雨啦,你带伞了没?.jpg

一、关于移动端1px问题

前端这个活,真的是被产品虐到脑海中每天都有上千只小动物飘过,然而不让你省心的还有UI,总是跑过来告诉你,“你这和我设计图不一样呀?我这是1px,你这设备上显示的是2px”,然而,你能怎么办,改吧,笔者给你整理几种解决办法,让你扬眉吐气。

先说原因

写过移动端的小伙伴都知道,在页面的开头,我们都会加一个viewport,然而viewport的设置和屏幕物理分辨率是按比例而不是相同的. 移动端window对象有个devicePixelRatio属性, 它表示设备物理像素和css像素的比例, 在retina屏的iphone手机上, 这个值为2或3, css里写的1px长度映射到物理像素上就有2px或3px那么长,所以1px看上去就变宽了。

解决办法有很多,但是我这里介绍两个最方便且常用的

第一种,flexible.js(后续不断更新其他方法)

引入flexible.js 加上rem布局,那可是对于移动端开发方便了不少,根据不同的设备是可以达到前端开发对页面的要求的,所以引入这个js,在处理1px问题的时候,只需要正常书写1px就可以了,而且你 不需要再添加<meta name="viewport">等等,因为这个js都帮你动态的添加好了,是不是很方便,来来来,举个栗子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src=http://i0.jrjimg.cn/zqt-red-1000/focus/focus_zixuangu/flexible.js></script>
    <style type="text/css">
        .onePx{width: 1rem;height: 1rem;border: 1px solid red;background: skyblue;margin:0 auto;margin-top: 2rem;}
    </style>
</head>
<body>
    <div class="onePx">
        
    </div>
</body>
</html>

效果


01.jpg

二、关于文本的溢出隐藏

这个是前端使用频率极高的一段代码,可选择自行收藏,记得给标签设置宽度哦~

单行文本溢出显示省略号

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .one{
            width: 300px;
            overflow: hidden;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;  }
    </style>
</head>
<body>
    <div class="one">
        哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,
    </div>
</body>
</html>

效果


02.jpg

多行文本溢出显示省略号

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .one{
            width: 300px;
            display: -webkit-box;   
            -webkit-box-orient: vertical;   
            -webkit-line-clamp: 2;   
            overflow: hidden;  
        }
    </style>
</head>
<body>
    <div class="one">
        哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,哈哈,就是这样啦,
    </div>
</body>
</html>

效果

03.jpg

三,关于使用overflow:hidden,在ios下卡顿的问题解决

这个问题可是找到解决办法的我眼泪掉下来,尝试了n中方法,什么用swipter之类的,但是最后效果都不好,结果最终的解决办法就是一行代码

在css 属性上添加 -webkit-overflow-scrolling: touch;

效果我就不演示了,肯定超过你的预期。小伙伴可以在ios中前端开发时但用无妨。

四,判断用户设备

h5前端开发的时候,经常需要安卓和ios各种适配,经常书写的一段代码就是要判断用户设备,从而在不同的设备上执行不同的代码。so,还是记下无妨

        var u = navigator.userAgent.toLowerCase();;
        if (u.indexOf('android') > -1 || u.indexOf('linux') > -1) { 
              //安卓手机
        } else if (u.indexOf('iphone') > -1) {
             //苹果手机
        } else if (u.indexOf('windows phone') > -1) {
             //winphone手机
        }

五,判断页面的打开环境,同时区别站内站外

开发的时候,有时候需要区别是在用户是在app里打开的,还是在手机浏览器里打开的,从而判断用户是能直接进行更深入的操作还是直接点击按钮进入app下载页

                var browser = {
                  versions: function () {
                    var u = navigator.userAgent, app = navigator.appVersion;
                    return {   //移动终端浏览器版本信息
                      trident: u.indexOf('Trident') > -1, //IE内核
                      presto: u.indexOf('Presto') > -1, //opera内核
                      webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
                      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核
                      mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
                      ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
                      android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或uc浏览器
                      iPhone: u.indexOf('iPhone') > -1, //是否为iPhone或者QQHD浏览器
                      iPad: u.indexOf('iPad') > -1, //是否iPad
                      webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部
                      };
                    }(),
                  language: (navigator.browserLanguage || navigator.language).toLowerCase()
                }

               //判断之后即可进行操作
                var ua = navigator.userAgent.toLowerCase();//获取判断用的对象
                if (ua.match(/MicroMessenger/i) == "micromessenger") {
                  
                }
                if (ua.match(/WeiBo/i) == "weibo") {
                  
                }
                if (ua.match(/QQ/i) == "qq") {
                  
                }
                if (browser.versions.ios) {
                  
                }
                if(browser.versions.android){
                  
                }

六,ios下动态改动h5页面title

有时候,根据需要,我们经常需要动态的更改ios页面的title,所以经常是在接口中返回信息之后我们才知道页面的title是撒,但是此时dom已基本加载完毕,ios下更改title就费尽了,不过笔者亲测有效

                                document.title = "我是接口返回的页面title";
                                if (/ip(hone|od|ad)/i.test(navigator.userAgent)) {
                                    var i = document.createElement('iframe');
                                    i.style.display = 'none';
                                    i.onload = function() {
                                        setTimeout(function(){
                                            i.remove();
                                        }, 0)
                                    }
                                    document.body.appendChild(i);
                                }

七,好用的小效果

比如点击页面上的电话号码,可直接提示拨号;
比如点击页面上的短信,可直接提示发短信;
比如点击页面上的邮箱,可直接提示发邮件;

1、<a href="tel:400-888-6633">拨打电话<a>
2、<a href="sms:19956321564">发送短信<a>
3、<a href="mailto:mail@mail.com">发送邮件<a>

本该出去浪,又加班一天,555~~

喜欢就点赞 ~ 关注我就和你一块打王者荣耀(别怕我坑)哈哈
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351