gpt4 book ai didi

css - 如何使用CSS 3d矩阵制作 flex 变形效果

转载 作者:行者123 更新时间:2023-11-28 09:13:21 26 4
gpt4 key购买 nike

我正在尝试使用 css3 -webkit-transform:matrix3d() 属性在 ios 中复制吸吮效果。

但是,我无法像图片中那样处理 flex 的边缘。我自己最接近的解决方案如下:

-webkit-transform: matrix3d(0.85, 0.0678, 0, 0, 2.37, 0.85, -1.36, -0.0019, 0, 0, -1.53, -3.73, 0, 0, 0.34, 1);

这是 jsfiddle结果。

我怎样才能像图片中那样进行转换。请注意左右边缘是如何 flex 的。

enter image description here

最佳答案

我搜索了一些关于 css3 转换的内容。如果您使用的是 matrix3d 属性,则只能进行线性变换,这不会让您 flex 任何东西。它包括剪切、缩放和平移。

但是,当前的实验技术可以让您进行非线性转换。因此,您可以扭曲、 curl 等任何物体。这需要编写着色器,因此您需要为 GPU 编写代码。

Adobe 有 CSS Filter 实验室来演示这一点。多亏了他们,我才得以实现我想要的转变。这是屏幕截图: suckeffect

这是管理它的代码

-webkit-filter:
custom(url(shaders/vertex/warp.vs) mix(url(shaders/fragment/warp.fs) normal source-atop), 20 20 border-box, k array(-0.429, -0.471, 467, -0.286, -0.507, 0, -0.086, -0.507, 0, 0.15, -0.514, 0, -0.407, -0.086, 0, -0.021, -0.171, 0, 0.193, -0.171, 0, 0.364, -0.171, 0, 0.036, 0.179, 0, 0.179, 0.171, 0, 0.35, 0.179, 0, 0.464, 0.171, 0, 0.2, 0.5, 0, 0.279, 0.5, 0, 0.414, 0.493, 0, 0.5, 0.5, 0), matrix perspective(1000) scale(1) rotateX(0deg) rotateY(0deg) rotateZ(0deg), useColoredBack 1, backColor 1 1 1 1);

您可以在使用此链接启用实验性功能后自行测试:http://html.adobe.com/webplatform/graphics/customfilters/cssfilterlab/#suckeffect

关于css - 如何使用CSS 3d矩阵制作 flex 变形效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17870192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com