gpt4 book ai didi

javascript - 非矩形、Canvas 或 SVG 形状内的背景动画?

转载 作者:行者123 更新时间:2023-11-28 02:24:59 28 4
gpt4 key购买 nike

目标是向非矩形、Canvas 或 SVG 形状添加动态动画背景(JavaScript 或 CSS)。

这是一个示例动画:https://codepen.io/tmrDevelops/pen/NPMGjE

Here's the shape, along with a mock-up of the end-goal.

如果这是一个标准网页,则可以使用分层的 div 或形状。不幸的是,这是在“智能电视”上显示的 l 波段部分——因此白色区域(在示例图像中)必须是透明的,以便可以查看 RF 视频。

无论是 Canvas 还是 SVG 形状,裁剪都可用于对形状进行分层和 mask ——但是,(从我尝试过的所有内容来看)裁剪对直接应用于类 或 id

到目前为止,我还没有找到任何这样做的例子。

非常感谢任何帮助。


使用基本剪辑的示例代码......

(function () {
canvas = document.getElementById('lband');
ctx = canvas.getContext("2d");

setCanvasSize();
draw();
})();


function setCanvasSize() {
canvas.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
canvas.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

W = canvas.width;
H = canvas.height;
Hl = canvas.height * .85;
Wl = canvas.width * .85;

draw();
}


function draw() {
ctx.save();
ctx.beginPath();
ctx.moveTo(0, Hl);
ctx.lineTo(Wl, Hl);
ctx.lineTo(Wl, 0);
ctx.lineTo(W, 0);
ctx.lineTo(W, H);
ctx.lineTo(0, H);
ctx.closePath();
ctx.stroke();
ctx.clip();
// Draw red rectangle after clip()
ctx.fillStyle = "red";
ctx.fillRect(0, 0, 640, 480);
ctx.restore();
}

最佳答案

我不熟悉智能电视应用场景。然而,在旧的常规网络上,您可以通过调用 clearRect(xCord, yCord, xLength, yLenght) 恢复 Canvas (部分)的透明度。在绘图上下文中。这codepen已设置 background-image<body> 上,您会看到在调用 clearRect 时显示图像.我怀疑您的电视也会有同样的行为。

如果要求不让任何元素占用视频空间,潘多拉魔盒或许还有另一种解决方案。
你可以尝试用两张 Canvas ,一张在左边,一张在下面,同时在上面画画,给人一种连在一起的错觉。
(例如,它是一个 L 形 Canvas 。)

关于javascript - 非矩形、Canvas 或 SVG 形状内的背景动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009245/

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