用 JavaScript 模拟的 90% 相似度 macOS Dock 放大效果

2019-11-17 01:02:37 +08:00
 AlphaRobert

预览: https://www.zhihu.com/pin/1179182286955741184

之前在网络上找的都是模仿得很不像的;但这也证明 Apple 一开始有多细腻。

主要的细节是:

(l, w) = (l′, w′) / h′,
r = l + w,
a = 8 / 9,
l, r ∈ [-3 / a, 3 / a](超出以限定极值计),
k = ∫_l^r {0.5 cos(a x) + 0.5} / w.
// 分割线的相对宽度 w 是 0.5 h,也要考虑缩放

设缩放最大高度为 hm′,则实际宽度为 k * (hm′ - h′) + h′

​   我之前试过正态分布曲线、三次绝对值的类正态曲线,但是似乎并不对;网上有的甚至直接用线性变化

目前在尝试用 CSS 和 JS 模拟 macOS 的 UI

源码太烂就不放了 ==

3519 次点击
所在节点    macOS
6 条回复
ynyounuo
2019-11-17 01:19:47 +08:00
效果相当不错啊,窗口阴影的计算是什么样的?
gclm
2019-11-17 07:57:43 +08:00
非常喜欢这个 UI,可以聊聊吗? 1719982754 #qq.com
gclm
2019-11-17 08:09:02 +08:00
另外如何私聊你呢
AlphaRobert
2019-11-17 11:39:39 +08:00
@ynyounuo box-shadow:
活动窗口 rgba(0, 0, 0, 0.7) 0 0 1px, rgba(0, 0, 0, 0.15) 0 10px 20px, rgba(0, 0, 0, 0.35) 0 25px 40px
非活动窗口 rgba(0, 0, 0, 0.7) 0 0 1px, rgba(0, 0, 0, 0.1) 0 0 20px, rgba(0, 0, 0, 0.2) 0 15px 30px;
ynyounuo
2019-11-17 11:47:03 +08:00
@AlphaRobert
/t/293920
我之前试过在 Photoshop 里模拟 macOS 的窗口阴影,感觉上应该是有两层叠加,尤其边缘部分不是平滑过渡的
AlphaRobert
2019-11-17 13:44:23 +08:00
@ynyounuo 我这里有三层阴影,分别是深色细边缘(边缘也算作阴影)、基础阴影、延伸阴影。Apple 官网提供的 Sketch 文件有一定的参考价值,但据观测并不完全符合真实的 macOS 效果(尤其是 vibrancy 效果直接略去了);另外不同的软件对阴影的的算法也不一样,Firefox 的就比 Safari 的浓一些

用窗口截图得出的延伸量是
非活动:34 42 50
活动:32 56 80
但是并不能用 CSS 良好套用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/620304

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX