最近學了啥(一)

  • 如果你有兩個相鄰的文本位,且希望它們的padding差不多一個空格,那你可以試試1ch品腹。{ padding-left: 1ch }
    擴展閱讀
  • 你知道vertical-align可以用百分比嗎?如果你發(fā)現vertical-align: super或top不是你想要的那樣,別去加position: relative; top: -3px之類的代碼谎仲,試試看vertical-align: 30%吧。
  • input 的寬度一定要注意刨仑,當它寬度低于某個臨界值時候郑诺,它的寬度將停留在這個臨界值,導致有些時候布局麻煩杉武,所以最好給它設置個安全的最小寬度辙诞,比如 min-width: 10px。
  • input轻抱,image飞涂,iframe 等不支持偽元素。
  • 在 <input> 或 <textarea> 可以使用 oninput 事件祈搜,它在元素的值發(fā)生變化時立即觸發(fā)较店,而 onchange 在元素失去焦點時觸發(fā)。另一點容燕,onchange 事件也可作用于 <keygen> 和 <select> 元素梁呈。
  • 如果你需要在組件中使用 setInterval 或者 setTimeout,那你需要這樣調用蘸秘。 擴展閱讀
compnentDidMount() {
 this._timeoutId = setTimeout( this.doFutureStuff, 1000 );
 this._intervalId = setInterval( this.doStuffRepeatedly, 5000 );
}
componentWillUnmount() {
 clearTimeout( this._timeoutId );
 clearInterval( this._intervalId );
}
  • 如果你需要使用 requestAnimationFrame() 執(zhí)行一個動畫循環(huán)
// How to ensure that our animation loop ends on component unount
componentDidMount() {
  this.startLoop();
}

componentWillUnmount() {
  this.stopLoop();
}

startLoop() {
  if( !this._frameId ) {
    this._frameId = window.requestAnimationFrame( this.loop );
  }
}

loop() {
  // perform loop work here
  this.theoreticalComponentAnimationFunction()
  
  // Set up next iteration of the loop
  this.frameId = window.requestAnimationFrame( this.loop )
}

stopLoop() {
  window.cancelAnimationFrame( this._frameId );
  // Note: no need to worry if the loop has already been cancelled
  // cancelAnimationFrame() won't throw an error
}
  • 媒體查詢
@media screen and (max-width: 500px) and (min-resolution: 2dppx) {
    .yourLayout {
        width:100%;
    }
}
  • 圖片加載新方式
537f5932ly1ffrotx8adqj21kw162gxx.jpg
  • 獲取元素尺寸知多少
![a2.png](http://upload-images.jianshu.io/upload_images/111568-40e1fbc6a94bc222.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 關于數字
// 無效語法:
42.toFixed( 3 ); // SyntaxError
// 下面的語法都有效:
(42).toFixed( 3 ); // "42.000"
0.42.toFixed( 3 ); // "0.420"
42..toFixed( 3 ); // "42.000"
42 .toFixed(3); // "42.000"
  • 簡單值總是通過值賦值的方式來賦值(null, undefined, string, number, bool, symbol )官卡,復合值總是通過引用復制的方式來賦值。
var a = 1;
b = a;
b++
a // 1
b // 2

var arr = [1, 2, 3]
brr = arr
arr.push(4)
arr // [1, 2, 3, 4]
brr // [1, 2, 3, 4]
  • 常用的返回毫秒數
+ new Date()

更優(yōu)雅的方式
(new Date()).getTime()

Date.now()
  • 數組的一些處理
CallApi(`/message/${id}`, null, 'DELETE').then(r => {
  if (r.code === 'SUCCESS') {
    let index = this.state.messages.findIndex(i => i.id == id);
    // 快速復制一個新數組
    let newArr = [...this.state.messages];
    newArr.splice(index, 1);
    this.setState(s => ({messages: newArr}))
  } else {
    r.msg && Toast.info(r.msg)
  }
});
// 解構醋虏,如果需要改變變量名
let { message: newMessage } = this.state
  • 對價格數組進行去0操作寻咒,最多保留兩位數
function myNum(s) {
  var s1 = +s;
  if(!s1) return 0;
  var s2 = s1.toFixed(2) ;
  if(s2.substr(-1) !== '0'){
    return s2
  } else if(s2.substr(-2,1) !== '0' && s2.substr(-1) === '0'){
    return s1.toFixed(1)
  } else {return s1.toFixed(0)}
}
  • 正則匹配
'font-size:20px'.replace(/:\s*(\d+)px/g, (a,b)=>{
               return `:${b*0.02}rem`
            })
  • 如何寫一個類似antd Toast 的組件
import React from 'react';
import {render} from "react-dom";
import {Toast} from 'react-weui';

class ToastContainer extends React.PureComponent {
    state={show: true};
    componentDidMount() {
        const {timer, cb} = this.props;
        setTimeout(() => {this.setState({show: false}); cb && cb()}, timer*1000)
    }
    render() {
        const {type, content} = this.props;
        const {show} = this.state;
        return (
            show && <Toast icon={type} show={true}>{content}</Toast>
        )
    }
}

function hide() {
    render(<div />, document.getElementById('toast'))
}

function notice(content, timer, cb, type) {
    hide();
    const root = React.createElement(ToastContainer, {content, timer, cb, type});
    render(root, document.getElementById('toast'))
}


export default {
    success: (content, timer=3, cb) => notice(content, timer, cb, 'success-no-circle'),
    fail: (content, timer=3, cb) => notice(content, timer, cb, 'cancel'),
    info: (content, timer=3, cb) => notice(content, timer, cb, 'info-circle'),
    loading: (content, timer=3, cb) => notice(content, timer, cb, 'loading'),
    hide: () => hide()
};
  • 微信頁面,長按會彈出系統(tǒng)菜單如何解決颈嚼?
    有一個按鈕毛秘,用戶需要長按它說話,但是顯示在微信里面的網頁粘舟,長按會出現復制的菜單熔脂,造成用戶體驗不流暢。
    如何解決呢柑肴?
  1. 首先為按鈕添加樣式 user-select:none
  2. 其次在按鈕的 onTouchStart 事件上這樣組織代碼
onTouchStart = e => {
    e.preventDefault();
    setTimeout(() => { 你的核心代碼 }, 0)
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晰骑,隨后出現的幾起案子适秩,更是在濱河造成了極大的恐慌绊序,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秽荞,死亡現場離奇詭異骤公,居然都是意外死亡,警方通過查閱死者的電腦和手機扬跋,發(fā)現死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門阶捆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钦听,你說我怎么就攤上這事洒试。” “怎么了朴上?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵垒棋,是天一觀的道長。 經常有香客問我痪宰,道長叼架,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任衣撬,我火速辦了婚禮乖订,結果婚禮上,老公的妹妹穿的比我還像新娘淮韭。我一直安慰自己垢粮,他們只是感情好,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布靠粪。 她就那樣靜靜地躺著蜡吧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪占键。 梳的紋絲不亂的頭發(fā)上昔善,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音畔乙,去河邊找鬼君仆。 笑死,一個胖子當著我的面吹牛牲距,可吹牛的內容都是我干的返咱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼牍鞠,長吁一口氣:“原來是場噩夢啊……” “哼咖摹!你這毒婦竟也來了?” 一聲冷哼從身側響起难述,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤萤晴,失蹤者是張志新(化名)和其女友劉穎吐句,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體店读,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡嗦枢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了屯断。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片文虏。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖裹纳,靈堂內的尸體忽然破棺而出择葡,到底是詐尸還是另有隱情紧武,我是刑警寧澤剃氧,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站阻星,受9級特大地震影響朋鞍,放射性物質發(fā)生泄漏。R本人自食惡果不足惜妥箕,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一滥酥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧畦幢,春花似錦坎吻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黍瞧,卻和暖如春诸尽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背印颤。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工您机, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人年局。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓际看,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矢否。 傳聞我的和親對象是個殘疾皇子仲闽,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,748評論 1 92
  • H5移動端知識點總結 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,486評論 0 26
  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,466評論 0 6
  • 關于css常見問題兴喂,大多是移動端的蔼囊。 簡單的排版規(guī)則:條目與條目之間空兩行焚志,每條內容部分分段空一行。標點符號全部用...
    蘇水兒閱讀 5,017評論 0 9
  • 楊慶瑞閱讀 226評論 0 2