Google Ideas homepage具有扭曲某些文本外观的动画和具有静态声音效果的按钮,以便在内容从一个项目转换到下一个项目时模拟信号干扰。
如果他们改变设计,这是一个Gif:
他们是如何实现这一目标的?我可以看到开发工具中的类和样式,所以JavaScript肯定会涉及到,但是我找不到脚本本身的相关部分。
答案 0 :(得分:6)
这并不难,尤其是html2canvas和canvas-glitch。
基本上你只需要将DOM元素转换为画布,然后操纵图像数据以实现毛刺效果。有了这两个库,那个任务变得非常简单。
html2canvas(node, {
onrendered: function (canvas) {
// hide the original node
node.style.display = "none";
// add the canvas node to the node's parent
// practically replacing the original node
node.parentNode.appendChild(canvas);
// get the canvas' image data
var ctx = canvas.getContext('2d');
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
// glitch it
var parameters = { amount: 1, seed: Math.round(Math.random()*100), iterations: 5, quality: 30 };
glitch(imageData, parameters, function(imageData) {
// update the canvas' image data
ctx.putImageData(imageData, 0, 0);
});
}
});