Apple 微信公眾號(hào)的排版效果總是讓人眼前一亮,精致的細(xì)節(jié)、酷炫的動(dòng)畫讓人不得不佩服 Apple 團(tuán)隊(duì)的用心與專業(yè)。 經(jīng)過(guò)源碼分析后發(fā)現(xiàn),Apple 的微信公眾號(hào)在排版上用了一些黑科技,其中包括了 SVG 、Flex Layout 、Chrome Inspect 等 Web 前端技術(shù)。 我今天就給大家分享下,Apple 微信公眾號(hào)的效果是如何制作出來(lái)的。
效果展示
我們來(lái)看下 iPhone SE 發(fā)布的那篇文章的展示效果 效果圖:
布局剖析
我們來(lái)分析下上面的布局效果:排版共有 5 個(gè)模塊組成。 我們分別用 A 、B 、C 、D 、E 來(lái)標(biāo)記。如下圖:
排版剖析:
如果你稍懂 CSS,那么實(shí)現(xiàn)這樣的布局是非常簡(jiǎn)單的。Apple 用的方式是使用 Flex Layout:
<div style="display: flex">
<div style="display: flex;width: 50%; flex-direction: column;">
<div style="display: block;">
<!-- 內(nèi)容 A -->
</div>
<div style="display: block;">
<!-- 內(nèi)容 B -->
</div>
</div>
<div style="display: flex;width: 50%;flex-direction:column;">
<!-- 內(nèi)容 C -->
</div>
<div style="display: flex;flex-direction:column;">
<!-- 內(nèi)容 D -->
</div>
<div style="display: flex; flex-direction:column;">
<!-- 內(nèi)容 E -->
</div>
</div>
然而,微信官方的內(nèi)容編輯器并不支持直接編輯 HTML,不過(guò)這難不倒我們,我們要使用一些簡(jiǎn)單的黑科技(后文會(huì)說(shuō)明)就能把代碼提交到微信后端,實(shí)現(xiàn) Flex Layout 效果。
點(diǎn)擊事件、動(dòng)效
我們發(fā)現(xiàn),Apple 的 ABCDE 每個(gè)模塊都有點(diǎn)擊事件,然而微信公眾號(hào)并不支持 JS,那么點(diǎn)擊事件是如何添加的的呢? 其實(shí),Apple 團(tuán)隊(duì)采用 SVG + JPEG/GIF 組合方案
來(lái)給圖片增加點(diǎn)擊事件和動(dòng)效的。** 我們來(lái)看下效果:
1,SVG + JPEG + JPEG 完整效果,請(qǐng)用微信掃描文章頂部二維碼:
2,SVG + JPEG + GIF 完整效果,請(qǐng)用微信掃描文章頂部二維碼:
3,SVG + GIF + GIF 完整效果,請(qǐng)用微信掃描文章頂部二維碼:
之所以可以實(shí)現(xiàn)上述效果,是因?yàn)槲覀兝?SVG 給圖片增加了點(diǎn)擊事件。由于在 SVG 中 使用 animate 標(biāo)簽
可以添加事件,同時(shí) animate 本身就有動(dòng)畫效果, 因此使用 SVG,微信文章中的圖片就擁有了交互能力。
使用這部分代碼時(shí),只需要將圖片 1 、圖片 2 的 URL 替換成,你已經(jīng)上傳到微信圖庫(kù)中圖片的 URL 即可實(shí)現(xiàn)上述效果。
當(dāng)我們把 JPEG 用 GIF 來(lái)代替時(shí),可以組合的效果選擇就豐富多了。比如上面演示的 “SVG + JPEG + GIF和
SVG + JPEG + GIF`。
實(shí)現(xiàn)這個(gè)效果的主要代碼如下:
...
<div style="display: flex;width: 100%;flex-direction: column;">
<svg xmlns="http://www.w3.org/2000/svg"
style="background-image:
url(圖片 2 微信圖庫(kù) URL);">
<animate attributeName="opacity"begin="click">
</animate>
</svg>
<div
background-image:
url("圖片 1 微信圖庫(kù) URL");">
</div>
</div>
...
用 Chrome Inspect 提交代碼
我們知道,微信公眾號(hào)的編輯器是不支持直接修改文章 HTML 的。那么我們?cè)撊绾尾拍馨丫庉嫼玫拇a提交到微信后臺(tái)呢? 這時(shí)候我們就要用到 Chrome Inspect
,對(duì)于做前端的同學(xué)來(lái)說(shuō),Chrome Inspect 是調(diào)試過(guò)程中離不開的工具,它可以直接幫助我們修改前端 HTML 代碼。因此提交代碼的步驟是:
- 用 Chrome 瀏覽器打開微信公眾號(hào)的圖文編輯器,在文章中隨意輸入一句話
- 右鍵點(diǎn)擊網(wǎng)頁(yè)空白處,選擇
Inspect
。 - 打開 Inspect 后,用 Inspect 左上角的選擇器選中最開始輸入的內(nèi)容,右鍵點(diǎn)擊標(biāo)簽,選擇
Edit as HTML
- 貼入代碼( Flex 或 SVG ),就能看到效果。
Flex Layout + SVG + Chrome Inspect 實(shí)現(xiàn)蘋果動(dòng)效
我們了解了 Apple 公眾號(hào)的效果是如何實(shí)現(xiàn)的了,下面那么我們來(lái)實(shí)踐一下。
本文轉(zhuǎn)載自微信公眾號(hào)「東澤聊技術(shù)」文章《月薪 3W 的 Apple 微信編輯是這么發(fā)文章的 |如何發(fā)類似 Apple 微信公眾號(hào)的文章效果》