【发布时间】:2021-02-20 12:27:47
【问题描述】:
我正在尝试实现一个动画,其中你有三层图像 - 背景、前景和用作遮罩的第三层(圆形)。
背景和前景图像是静态的,前景位于背景之上。 bg 始终可见,但 fg 最初是隐藏的。圆圈在背景图片内随机移动,在圆圈内可以看到前景图片(剪裁的那种)
笔链接 - https://codepen.io/the_anshulkumar/full/MWeqNJM
请注意,当 fg 图像固定到一个位置时,所需的效果仅在大约 10 秒后开始。在前 10 秒内,前景图像会随着圆圈移动,这是不希望的。
虽然我尝试使用 CSS 和 JavaScript 来实现它,但它并不完美。对于初学者来说,圆圈和前景图像需要一段时间才能进入它们的位置。其次,我正在为 top 和 left 属性设置动画,这使得页面非常慢。
$('.circles').animate({ top: newq[0], left: newq[1] }, speed, function(){
animateDiv();
});
$('.fg').animate({ top: ("-"+newq[0]), left: ("-"+newq[1]) }, speed, function(){
animateDiv();
});
可以固定前景移动的开始 10 秒吗?这可以通过 CSS 转换而不是动画 top 和 left 属性来完成吗?第三种选择是如果这可以通过 Canvas 完成。我知道画布会是更好的选择,因为动画可以轻松地以 60fps 运行,但我对 HTML5 画布的了解几乎为零。
任何帮助将不胜感激。非常感谢
【问题讨论】:
标签: javascript jquery css canvas html5-canvas