Chrome 69 新特性

在不久前柳爽,Chrome 69 正式發(fā)布谚鄙,作為 Chrome 的 10 周年版本,帶來了許多新變化芥丧,比如新的 UI 風(fēng)格紧阔,使其整體更符合 Material Design 的設(shè)計(jì),而且還添加了以下內(nèi)容的支持:

  • CSS Scroll Snap娄柳,幫助你創(chuàng)建流暢順滑的滾動(dòng)體驗(yàn)
  • Display cutouts寓辱,兼容全面屏、劉海屏
  • Web Locks API赤拒,通過獲取異步鎖秫筏,在任務(wù)執(zhí)行時(shí)保持該鎖,等執(zhí)行完畢后釋放該鎖

CSS Scroll Snap

CSS Scroll Snap 可以幫助開發(fā)者創(chuàng)建流暢順滑的滾動(dòng)體驗(yàn)挎挖,通過聲明滾動(dòng)位置这敬,告知瀏覽器在執(zhí)行滾動(dòng)之后應(yīng)該停在哪里。這對(duì)于圖片輪播或分頁時(shí)非常有用蕉朵,可以讓用戶滾動(dòng)到指定位置崔涂。

對(duì)于圖片輪播,可以給滾動(dòng)容器添加 scroll-snap-type: x mandatory;始衅,給每個(gè)圖片添加 scroll-snap-align: center;冷蚂,這樣,當(dāng)用戶滾動(dòng)時(shí)汛闸,每一張圖片會(huì)平滑的滾動(dòng)至最合適的位置蝙茶。

下面用 Vue 寫一個(gè)示例:

<div id="app">
  <p>
    <label for="spanAlign">scroll-snap-align: </label>
    <select id="spanAlign" v-model="spanAlign">
      <option value="start">Start</option>
      <option value="center">Center</option>
      <option value="end">End</option>
    </select>
  </p>
  <button @click="prev">prev</button>
  <button @click="next">next</button>
  <div class="container" ref="container">
    <div class="item" v-for="n in 10" :style="itemStyle">{{n}}</div>
  </div>
</div>
window.app = new Vue({
  el: '#app',
  data() {
    return {
      spanAlign: 'center',
    };
  },
  computed: {
    itemStyle() {
      return {
        scrollSnapAlign: this.spanAlign,
      };
    },
  },
  methods: {
    prev() {
      const width = this.$refs.container.querySelector('.item').clientWidth;
      this.$refs.container.scrollBy(-width, 0);
    },
    next() {
      const width = this.$refs.container.querySelector('.item').clientWidth;
      this.$refs.container.scrollBy(width, 0);
    },
  },
});
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
}

#app {
  position: relative;
  width: 500px;
  padding: 0 16px;
}

.container {
  scroll-snap-type: x mandatory;
  overflow-x: scroll;
  overflow-y: hidden;
  display: flex;
  align-items: center;
  height: 300px;
}

.item {
  scroll-snap-align: center;
  position: relative;
  min-width: 75%;
  min-height: 90%;
  margin: 10px;
  border-radius: 10px;
  background-color: #9fa8da;
  font-size: 40px;
  text-align: center;
  vertical-align: middle;
}

可以看到,圖片滾動(dòng)時(shí)诸老,會(huì)平滑地滾動(dòng)到指定的位置隆夯。

平滑滾動(dòng)

Display cutouts (aka notches)

現(xiàn)在有越來越多的手機(jī)使用了劉海屏,為了解決這種情況,Chrome 瀏覽器會(huì)為頁面添加一些額外的 margin蹄衷,這樣就能保證頁面內(nèi)容不會(huì)被劉海遮住忧额。

extra margin

但如果想使用這部分空間的話的話,我們就需要在 meta 標(biāo)簽中添加 viewport-fit 并使用 CSS 變量愧口,比如我們可以先在 viewport meta 中設(shè)置 viewport-fit 屬性為 cover睦番。

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

之后就能使用 CSS 變量 safe-area-inset-* 去布局整個(gè)頁面

.content {
  margin-left: env(safe-area-inset-left);
  margin-right: env(safe-area-inset-right);
}

下圖是不同的 CSS 變量所代表的值

css variables

該特性是 Chrome 69 最新支持的,而 Safari 11 早已支持該特性调卑,相關(guān)內(nèi)容可查看 Designing Websites for iPhone X

Web Locks API

Web Locks API 使得開發(fā)者可以獲取異步鎖抡砂,在任務(wù)執(zhí)行時(shí)保持,并在任務(wù)執(zhí)行結(jié)束后釋放恬涧。當(dāng)鎖在保持狀態(tài)時(shí),在同一個(gè) origin 內(nèi)的腳本無法獲取同一個(gè)鎖碴巾,這樣有助于協(xié)調(diào)共享資源的使用溯捆。

例如,如果在多個(gè) tab 中運(yùn)行的 Web 應(yīng)用中想要保證只有一個(gè) tab 可以進(jìn)行網(wǎng)絡(luò)同步厦瓢,那么就需要嘗試獲取一個(gè)名叫 network_sync_lock 的鎖提揍。

navigator.locks.request('network_sync_lock', async lock => {
  // The lock has been acquired.
  await do_something();
  await do_something_else();
  // Now the lock will be released.
});

這樣第一個(gè) tab 將會(huì)進(jìn)行網(wǎng)絡(luò)同步,如果其他的 tab 嘗試獲取該鎖煮仇,將會(huì)進(jìn)入隊(duì)列等待劳跃,當(dāng)該鎖被釋放,隊(duì)列中下一個(gè)任務(wù)則會(huì)被準(zhǔn)許獲取該鎖并執(zhí)行浙垫。

And More!

以上內(nèi)容只是 Chrome 69 中針對(duì)開發(fā)者的新特性中的一部分刨仑,下面介紹更多的新特性:

  • 根據(jù) CSS4 的規(guī)范,支持圓錐漸變?nèi)?chuàng)建顏色過渡夹姥。

示例:

.test {
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background-image: conic-gradient(red, yellow, lime, aqua, blue, magenta, red);
}

最終效果如下:

圓錐漸變
  • 支持 Element.toggleAttribute() 方法杉武,用于切換元素屬性的存在性,用法類似于 classList.toggle()
  • 支持 Array.prototype.flat()Array.prototype.flatMap() 兩個(gè)方法辙售,它們返回一個(gè)新的數(shù)組轻抱,該數(shù)組包含所有子數(shù)組的元素。
  • OffscreenCanvas 將主線程放至 worker 執(zhí)行旦部,以幫助消除性能瓶頸祈搜。

總結(jié)

以上便是 Chrome 69 的新特性,若要查看英文原文士八,請(qǐng)點(diǎn)擊查看

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末容燕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子曹铃,更是在濱河造成了極大的恐慌缰趋,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異秘血,居然都是意外死亡味抖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門灰粮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仔涩,“玉大人,你說我怎么就攤上這事粘舟∪壑” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵柑肴,是天一觀的道長(zhǎng)霞揉。 經(jīng)常有香客問我,道長(zhǎng)晰骑,這世上最難降的妖魔是什么适秩? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮硕舆,結(jié)果婚禮上秽荞,老公的妹妹穿的比我還像新娘。我一直安慰自己抚官,他們只是感情好扬跋,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凌节,像睡著了一般钦听。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刊咳,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天彪见,我揣著相機(jī)與錄音,去河邊找鬼娱挨。 笑死余指,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跷坝。 我是一名探鬼主播酵镜,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼柴钻!你這毒婦竟也來了淮韭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤贴届,失蹤者是張志新(化名)和其女友劉穎靠粪,沒想到半個(gè)月后蜡吧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡占键,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年昔善,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔乙。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡君仆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出牲距,到底是詐尸還是另有隱情返咱,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布牍鞠,位于F島的核電站咖摹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏难述。R本人自食惡果不足惜楞艾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龄广。 院中可真熱鬧,春花似錦蕴侧、人聲如沸择同。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敲才。三九已至,卻和暖如春择葡,著一層夾襖步出監(jiān)牢的瞬間紧武,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工敏储, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阻星,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓已添,卻偏偏與公主長(zhǎng)得像妥箕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子更舞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • 1畦幢、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,969評(píng)論 3 119
  • 閱讀打卡第93天:今天讀了,愛迪生耳聾的好處缆蝉,苦難是一塊墊腳石宇葱,見到書就挪不動(dòng)步瘦真,帶著一個(gè)隨軍圖書館,勤學(xué)苦讀黍瞧,讀...
    金凱樂麻麻閱讀 237評(píng)論 0 0
  • 全局意識(shí): 如能夠關(guān)注到其他人的感受 如能夠考慮到相關(guān)人的利益 如能夠影響到更多人的狀態(tài) 如能夠考慮到公司整體戰(zhàn)略...
    國(guó)仕空間閱讀 288評(píng)論 1 1
  • 說起曾經(jīng)诸尽,那些回憶過無數(shù)次的傷悲都在剎那間在腦海中一閃而過±啄妫回不去的曾經(jīng)都成了故事弦讽,我既是這些故事的主角,又是說故...
    韋韋韋閱讀 175評(píng)論 0 0