├── iPhone-SE
├── iphoneSE-layout.html
├── svg-jpg-gif-demo.html
└── 仿iphoneSE-layout.html
└── readme.md
/iPhone-SE/iphoneSE-layout.html:
--------------------------------------------------------------------------------
1 |
2 |
37 |
43 |
45 |
46 |
52 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/iPhone-SE/svg-jpg-gif-demo.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
14 |
15 |
16 |
17 |
18 |
26 |
27 |
29 |
30 |
31 |
32 |
33 |
41 |
42 |
44 |
--------------------------------------------------------------------------------
/iPhone-SE/仿iphoneSE-layout.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
31 |
32 |
33 |
37 |
38 |
39 |
40 |
55 |
56 |
57 |
58 |
66 |
67 |
69 |
70 |
71 |
72 |
80 |
81 |
83 |
84 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | ---
4 |
5 | > **Apple 微信公众号**的排版效果总是让人眼前一亮,精致的细节、酷炫的动画让人不得不佩服 Apple 团队的用心与专业。
6 | > 经过源码分析后发现,Apple 的微信公众号在排版上用了一些**黑科技**,其中包括了 SVG、Flex Layout、Chrome Inspect 等 Web 前端技术。
7 | > **我今天就给大家分享下,Apple 微信公众号的效果是如何制作出来的。**
8 |
9 | ## 效果展示
10 | 我们来看下 iPhone SE 发布的那篇文章的展示效果
11 | 效果图:
12 | 
13 |
14 | ## 布局剖析
15 |
16 | 我们来分析下上面的布局效果:排版共有 5个模块组成。
17 | 我们分别用 A、B、C、D、E 来标记。如下图:
18 | 
19 | 排版剖析:
20 |
21 | 如果你稍懂 CSS,那么实现这样的布局是非常简单的。Apple 用的方式是使用 Flex Layout:
22 |
23 | ```html
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | ```
44 | [完整源码](https://github.com/netpi/wechat-layout)
45 |
46 | 然而,微信官方的内容编辑器并不支持直接编辑 HTML,不过这难不倒我们,我们要使用一些简单的黑科技(后文会说明)就能把代码提交到微信后端,实现 Flex Layout 效果。
47 |
48 | ## 点击事件、动效
49 |
50 | 我们发现,Apple 的ABCDE每个模块都有点击事件,然而微信公众号并不支持 JS,那么点击事件是如何添加的的呢?
51 | 其实,Apple 团队采用 `SVG + JPEG/GIF 组合方案` 来给图片增加点击事件和动效的。** 我们来看下效果:
52 |
53 | **1,SVG + JPEG + JPEG**
54 | **完整效果,请用微信扫描文章顶部二维码:**
55 | 
56 |
57 | **2,SVG + JPEG + GIF**
58 | **完整效果,请用微信扫描文章顶部二维码:**
59 | 
60 |
61 | **3,SVG + GIF + GIF**
62 | **完整效果,请用微信扫描文章顶部二维码:**
63 | 
64 |
65 | 之所以可以实现上述效果,是因为我们利用SVG给图片增加了点击事件。由于在 SVG 中 使用 `animate 标签` 可以添加事件,同时 animate 本身就有动画效果, 因此使用SVG,微信文章中的图片就拥有了交互能力。
66 |
67 | 使用这部分代码时,只需要将图片1、图片2 的URL替换成,你已经上传到微信图库中图片的 URL 即可实现上述效果。
68 |
69 | 当我们把 JPEG 用 GIF 来代替时,可以组合的效果选择就丰富多了。比如上面演示的 ``SVG + JPEG + GIF` 和 `SVG + JPEG + GIF`。
70 |
71 | 实现这个效果的主要代码如下:
72 | ```html
73 | ...
74 |
75 |
81 |
84 |
85 |
86 | ...
87 | ```
88 | [完整源码](https://github.com/netpi/wechat-layout)
89 | - - - - -
90 |
91 | ## 用 Chrome Inspect 提交代码
92 |
93 | 我们知道,微信公众号的编辑器是不支持直接修改文章 HTML 的。那么我们该如何才能把编辑好的代码提交到微信后台呢?
94 | 这时候我们就要用到 `Chrome Inspect`,对于做前端的同学来说,Chrome Inspect 是调试过程中离不开的工具,它可以直接帮助我们修改前端 HTML 代码。因此提交代码的步骤是:
95 | 1. 用 Chrome 浏览器打开微信公众号的图文编辑器,在文章中随意输入一句话
96 | 2. 右键点击网页空白处,选择 `Inspect` 。
97 | 3. 打开 Inspect 后,用 Inspect 左上角的选择器选中最开始输入的内容,右键点击 标签,选择 `Edit as HTML`
98 | 4. 贴入代码(Flex 或 SVG),就能看到效果。
99 | 
100 |
101 | ## Flex Layout + SVG + Chrome Inspect 实现苹果动效
102 |
103 | 我们了解了 Apple 公众号的效果是如何实现的了,下面那么我们来实践一下。
104 |
105 | **完整效果,请用微信扫描文章顶部二维码:**
106 |
107 | 
108 |
109 | - - - - -
110 | 为了让大家方便使用,我已经把代码整理好提交到了 Github,点击 [完整源码](https://github.com/netpi/wechat-layout) 即可获得。
111 |
--------------------------------------------------------------------------------