前端開發(fā)中览效,常見的bug解決方案(一)

bug虐我千百遍却舀,我待bug如初戀;

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

下雨啦挽拔,你帶傘了沒?.jpg

一但校、關(guān)于移動端1px問題

前端這個活螃诅,真的是被產(chǎn)品虐到腦海中每天都有上千只小動物飄過,然而不讓你省心的還有UI状囱,總是跑過來告訴你州刽,“你這和我設(shè)計圖不一樣呀?我這是1px浪箭,你這設(shè)備上顯示的是2px”,然而辨绊,你能怎么辦奶栖,改吧,筆者給你整理幾種解決辦法,讓你揚眉吐氣宣鄙。

先說原因

寫過移動端的小伙伴都知道袍镀,在頁面的開頭,我們都會加一個viewport冻晤,然而viewport的設(shè)置和屏幕物理分辨率是按比例而不是相同的. 移動端window對象有個devicePixelRatio屬性, 它表示設(shè)備物理像素和css像素的比例, 在retina屏的iphone手機上, 這個值為2或3, css里寫的1px長度映射到物理像素上就有2px或3px那么長苇羡,所以1px看上去就變寬了。

解決辦法有很多鼻弧,但是我這里介紹兩個最方便且常用的

第一種设江,flexible.js(后續(xù)不斷更新其他方法)

引入flexible.js 加上rem布局,那可是對于移動端開發(fā)方便了不少攘轩,根據(jù)不同的設(shè)備是可以達到前端開發(fā)對頁面的要求的叉存,所以引入這個js,在處理1px問題的時候度帮,只需要正常書寫1px就可以了歼捏,而且你 不需要再添加<meta name="viewport">等等,因為這個js都幫你動態(tài)的添加好了笨篷,是不是很方便瞳秽,來來來,舉個栗子

<!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

二率翅、關(guān)于文本的溢出隱藏

這個是前端使用頻率極高的一段代碼练俐,可選擇自行收藏,記得給標(biāo)簽設(shè)置寬度哦~

單行文本溢出顯示省略號

<!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

三哈误,關(guān)于使用overflow:hidden哩至,在ios下卡頓的問題解決

這個問題可是找到解決辦法的我眼淚掉下來,嘗試了n中方法蜜自,什么用swipter之類的菩貌,但是最后效果都不好,結(jié)果最終的解決辦法就是一行代碼

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

效果我就不演示了重荠,肯定超過你的預(yù)期箭阶。小伙伴可以在ios中前端開發(fā)時但用無妨。

四戈鲁,判斷用戶設(shè)備

h5前端開發(fā)的時候仇参,經(jīng)常需要安卓和ios各種適配,經(jīng)常書寫的一段代碼就是要判斷用戶設(shè)備荞彼,從而在不同的設(shè)備上執(zhí)行不同的代碼冈敛。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手機
        }

五鸣皂,判斷頁面的打開環(huán)境抓谴,同時區(qū)別站內(nèi)站外

開發(fā)的時候,有時候需要區(qū)別是在用戶是在app里打開的寞缝,還是在手機瀏覽器里打開的癌压,從而判斷用戶是能直接進行更深入的操作還是直接點擊按鈕進入app下載頁

                var browser = {
                  versions: function () {
                    var u = navigator.userAgent, app = navigator.appVersion;
                    return {   //移動終端瀏覽器版本信息
                      trident: u.indexOf('Trident') > -1, //IE內(nèi)核
                      presto: u.indexOf('Presto') > -1, //opera內(nèi)核
                      webKit: u.indexOf('AppleWebKit') > -1, //蘋果、谷歌內(nèi)核
                      gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐內(nèi)核
                      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應(yīng)該程序荆陆,沒有頭部與底部
                      };
                    }(),
                  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下動態(tài)改動h5頁面title

有時候,根據(jù)需要被啼,我們經(jīng)常需要動態(tài)的更改ios頁面的title帜消,所以經(jīng)常是在接口中返回信息之后我們才知道頁面的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);
                                }

七,好用的小效果

比如點擊頁面上的電話號碼命浴,可直接提示撥號娄猫;
比如點擊頁面上的短信,可直接提示發(fā)短信生闲;
比如點擊頁面上的郵箱媳溺,可直接提示發(fā)郵件;

1碍讯、<a href="tel:400-888-6633">撥打電話<a>
2悬蔽、<a href="sms:19956321564">發(fā)送短信<a>
3、<a href="mailto:mail@mail.com">發(fā)送郵件<a>

本該出去浪捉兴,又加班一天屯阀,555~~

喜歡就點贊 ~ 關(guān)注我就和你一塊打王者榮耀(別怕我坑)哈哈
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缅帘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子难衰,更是在濱河造成了極大的恐慌,老刑警劉巖逗栽,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盖袭,死亡現(xiàn)場離奇詭異,居然都是意外死亡彼宠,警方通過查閱死者的電腦和手機鳄虱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凭峡,“玉大人拙已,你說我怎么就攤上這事〈菁剑” “怎么了倍踪?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長索昂。 經(jīng)常有香客問我建车,道長,這世上最難降的妖魔是什么椒惨? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任缤至,我火速辦了婚禮,結(jié)果婚禮上康谆,老公的妹妹穿的比我還像新娘领斥。我一直安慰自己,他們只是感情好沃暗,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布月洛。 她就那樣靜靜地躺著,像睡著了一般描睦。 火紅的嫁衣襯著肌膚如雪膊存。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天忱叭,我揣著相機與錄音隔崎,去河邊找鬼。 笑死韵丑,一個胖子當(dāng)著我的面吹牛爵卒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播撵彻,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钓株,長吁一口氣:“原來是場噩夢啊……” “哼实牡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起轴合,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤创坞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后受葛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體题涨,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年总滩,在試婚紗的時候發(fā)現(xiàn)自己被綠了纲堵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡闰渔,死狀恐怖席函,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冈涧,我是刑警寧澤茂附,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站炕舵,受9級特大地震影響何之,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜咽筋,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一溶推、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奸攻,春花似錦蒜危、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至硝训,卻和暖如春响委,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窖梁。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工赘风, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纵刘。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓邀窃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親假哎。 傳聞我的和親對象是個殘疾皇子瞬捕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355