【发布时间】:2016-08-02 06:36:41
【问题描述】:
对不起,如果标题令人困惑。我已尽力撰写,如果您想理解我的要求,请随时在评论中建议更好的标题。
我正在尝试制作的动画可以很容易地由视频编辑器完成,但在我看来使用 CSS/JS 并不那么容易:首先,我不是在谈论图像中的滑动,图像不会移动全部。我希望它从一边到另一边出现,但以渐变透明的方式出现。想象一下图像上有一个渐变的不透明度蒙版,使其左端的不透明度为1,右端的不透明度为0。当这个蒙版从左向右移动时,就是我想要实现的动画。
我可以将图像分割成几块,并控制每块的不透明度,必须有一定数量的块才能使整个动画流畅和吸引人。
我想的另一种方法是使用画布,您可以在其中按像素操作图像,正如this page 建议的那样,我可以做到
// get the image data object
var image = ctx.getImageData(0, 0, 500, 200);
// get the image data values
var imageData = image.data,
length = imageData.length;
// set every fourth value to 50
for(var i=3; i < length; i+=4){
imageData[i] = 50;
}
// after the manipulation, reset the data
image.data = imageData;
// and put the imagedata back to the canvas
ctx.putImageData(image, 0, 0);
但是,该页面仅采用静态图像而不是动画。我想知道如果我使用这种方法是否会破坏性能。此外,这种方法涉及大量难看的计算。
我想我要实现的东西不是很奇怪,那么有没有什么javascript插件可以实现呢?
【问题讨论】:
-
是否必须用透明而不是纯色来遮盖图像?图片下面会是什么?
-
画布在另一个图像之上,所以我想是的,这是必不可少的
标签: javascript animation canvas opacity opacitymask