前端解決方案工具集



移動(dòng)適配方案之?--postcss-px2rem?+?getRem多終端適配方案適配js


1厚掷、安裝??npm?install?postcss-pxtorem?-D

?//?藍(lán)湖上設(shè)計(jì)稿自定義為375px?測量值直接寫入即可?若設(shè)計(jì)稿為750px?則rootValue:?32

2斩披、項(xiàng)目根目錄postcss.config.js???

module.exports?=?{

????plugins:?{

??????"postcss-pxtorem":?{

????????rootValue:?16,?//結(jié)果為:設(shè)計(jì)稿元素尺寸/16悼嫉,比如元素寬320px,最終頁面會(huì)換算成?20rem

????????propList:?["*"],?//是一個(gè)存儲(chǔ)哪些將被轉(zhuǎn)換的屬性列表,這里設(shè)置為['*']全部顾瞪,假設(shè)需要僅對(duì)邊框進(jìn)行設(shè)置边坤,可以寫['*',?'!border*']

????????unitPrecision:?5,?//保留rem小數(shù)點(diǎn)多少位

????????//selectorBlackList:?['.radius'],??//則是一個(gè)對(duì)css選擇器進(jìn)行過濾的數(shù)組,比如你設(shè)置為['fs']晰赞,那例如fs-xl類名,里面有關(guān)px的樣式將不被轉(zhuǎn)換选侨,這里也支持正則寫法掖鱼。

????????replace:?true,?//這個(gè)真不知到干嘛用的。有知道的告訴我一下

????????mediaQuery:?false,?//媒體查詢(?@media?screen?之類的)中不生效

????????minPixelValue:?12,?//px小于12的不會(huì)被轉(zhuǎn)換

??????},

????},

??};


3援制、新建一個(gè)rem.js的文件戏挡,在main.js中引用

(function(){

????window.onload?=?()?=>{

????????getRem(375,100)

????}

????window.onresize?=?()?=>{

????????getRem(375,100)

????}

????/**

?????*?

???????代表設(shè)計(jì)稿的寬度,375/750/1920

?????*?@param?{*}?desginWide?

???????代表換算比例一般寫100,100的話比較好換算晨仑,

???????比如增拥,你測量的一個(gè)寬度是100px,就可以寫為1rem,以及1px=0.01rem

?????*?@param?{*}?pxRem?

?????*/

????const?getRem?=?(desginWide,pxRem)?=>{

????????//?獲取設(shè)備的寬度

????????let?clineWidth?=?document.body.clientWidth?||?document.documentElement.clientWidth;

????????//獲取html根元素

????????let?htmlDom?=?document.getElementsByName("html")[0];

????????htmlDom.style.fontSize?=?clineWidth?/?desginWide?*?pxRem?+?'px'

????}

})()



發(fā)送驗(yàn)證碼封裝


/**

?*

?*?@param?{*}?e?要操作的dom

?*?@param?{*}?callBack?處理發(fā)送驗(yàn)證碼的邏輯

?*?@param?{*}?num?幾秒后可以重新獲取

?*?@param?{*}?delay?多少秒掉一次

?*/

export?const?sendCode?=?(e,?callBack,?num?=?10,?delay?=?1000)?=>?{

????var?target?=?e.target?||?e.srcElement;

????let?timer?=?null;

????target.disabled?=?true;

????target.innerHTML?=?`${num}秒后可重新獲取`;

????callBack();

????timer?=?setInterval(()?=>?{

????????num--;

????????if(num?>?0)?{

????????????target.innerHTML?=?`${num}秒后可重新獲取`;

????????}else{

????????????clearInterval(timer);

????????????target.disabled?=?false;

????????????target.innerHTML?=?`點(diǎn)擊發(fā)送驗(yàn)證碼`;

????????????num?=?num;

????????}

????},?delay)

}

使用方式:

import?{?sendCode?}?from?'./utils.js'

<button?@click="sendCodeBtn($event)">發(fā)送驗(yàn)證碼</button>

methods:?{

????sendCodeBtn(e)?{

??????sendCode(e,?()?=>?{

????????console.log('調(diào)用后臺(tái)發(fā)送驗(yàn)證碼的接口邏輯處理')

??????},?20)

????}

??}



防抖節(jié)流,前端常見面試題


解決場景:短信驗(yàn)證碼倒計(jì)時(shí)寻歧、瀏覽器縮放、減少請(qǐng)求等

1秩仆、函數(shù)防抖

function?debounce(callback,waite){

????let?content?=?this;

????let?args?=?[...arguments];

????let?timeout;

????return?function(){

????????if(timeout)?clearTimeout;

????????timeout?=?setTimeout(()?=>{

????????????callback.call(content,args);

????????},waite)

????}

}

2码泛、 函數(shù)節(jié)流,在一段時(shí)間內(nèi)只執(zhí)行一次函數(shù),時(shí)間戳版本

function?throlte(callback,delay){

????let?pre?=?Date.now();

????return?function(){

????????let?args?=?arguments;

????????let?content?=?this;

????????let?now?=?Date.now();

????????if((now?-?pre)?>=?delay){

????????????callback.applay(content,args);

????????}

????????pre?=?Date.now();

????}

}



前端常見面試題


1澄耍、字符串反方向

/**

?*?倒序遍歷實(shí)現(xiàn)

?*?@param?{*}?str?

?*?@returns?

?*/

function?reverseStr(str){

????let?strs?=?"";

????for(let?i?=?str.length?-1;i?>=?0;i--){

??????????strs?+=?str[i];??

????}

????return?strs

}

2噪珊、判斷是否是回文

/**

?*?判斷是否是回文

?*?@param?{*}?str?

?*?@returns?

?*/

function?isPalindrome2(str){

????return?str?===?str.split().reverse().join();

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末晌缘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子痢站,更是在濱河造成了極大的恐慌磷箕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阵难,死亡現(xiàn)場離奇詭異岳枷,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)呜叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門空繁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人朱庆,你說我怎么就攤上這事盛泡。” “怎么了娱颊?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵傲诵,是天一觀的道長。 經(jīng)常有香客問我箱硕,道長拴竹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任颅痊,我火速辦了婚禮殖熟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘斑响。我一直安慰自己菱属,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布舰罚。 她就那樣靜靜地躺著纽门,像睡著了一般。 火紅的嫁衣襯著肌膚如雪营罢。 梳的紋絲不亂的頭發(fā)上赏陵,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音饲漾,去河邊找鬼蝙搔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛考传,可吹牛的內(nèi)容都是我干的吃型。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼僚楞,長吁一口氣:“原來是場噩夢啊……” “哼勤晚!你這毒婦竟也來了枉层?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赐写,失蹤者是張志新(化名)和其女友劉穎鸟蜡,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挺邀,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揉忘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悠夯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癌淮。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖沦补,靈堂內(nèi)的尸體忽然破棺而出乳蓄,到底是詐尸還是另有隱情,我是刑警寧澤夕膀,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布虚倒,位于F島的核電站,受9級(jí)特大地震影響产舞,放射性物質(zhì)發(fā)生泄漏魂奥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一易猫、第九天 我趴在偏房一處隱蔽的房頂上張望耻煤。 院中可真熱鬧,春花似錦准颓、人聲如沸哈蝇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炮赦。三九已至,卻和暖如春样勃,著一層夾襖步出監(jiān)牢的瞬間吠勘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工峡眶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剧防,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓辫樱,卻偏偏與公主長得像峭拘,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容