你知道position定位有哪些值嗎?常規static,絕對定位fixed、absolute,相對定位relative。好吧,這些是個前端都知道。今天要記錄的是個不常見的、還在實驗階段的、兼容性不怎麼完美的一個值。是的,正如標題提到的,它就是粘性定位sticky。你以前是否據說過呢?當我知道這個定位值後,我震驚了,臥槽,我是個假的前端吧,學前端一年多居然不知道定位還有個粘性定位。而後我就試了一下這個定位的效果,哇哦,真的很好用,遺憾的是兼容性不夠完美,可是現代主流瀏覽器的較新版本都已經兼容了。css
// APP.jsx constructor(props) { super(props); this.state = { todo: { A: ["apple", "animal", "approve", "action", "active"], B: ["binary", "battle", "boss", "because", "become"], C: ["client", "cool", "call", "come", "cake", "case"], D: ["decomand", "disappoint", "disagree", "decide", "delay", "date"] } }; } render() { return ( <div> {Object.keys(this.state.todo).map(key => ( <div key={key}> <div className="letter-head">{key}</div> {this.state.todo[key].map(item => ( <p key={item}>{item}</p> ))} </div> ))} </div> ); }
/*APP.css*/ .letter-head{ width: 400px; background-color: darkorange; position: sticky; position: -webkit-sticky; top: 0px; }
這個示例是局部title的使用場景。它在ie下是徹底不能工做的,不過根據sticky定位的描述,實際上是能夠經過js監聽窗口滾動,動態調整元素的postion定位,一開始佈局表現爲static,滾動到閥值表現爲fixed定位,到達父元素底部表現爲相對於父元素的absolute,bottom爲0的定位。然而我本身賓沒有嘗試去實現這樣的模擬哈哈哈哈哈哈哈,能夠看看stickybits庫的實現,應該是比較相似的。前端