2015-06-09 13 views
6

Google Ideas homepage có hoạt ảnh làm méo mó sự xuất hiện của một số văn bản và nút có hiệu ứng âm thanh tĩnh, để mô phỏng nhiễu tín hiệu khi nội dung chuyển từ mục này sang mục khác.Làm cách nào để Google tạo hiệu ứng biến dạng trên trang chủ Google Ideas?

Dưới đây là một Gif trong trường hợp họ thay đổi thiết kế:

Google Ideas text distortion gif

như thế nào họ đạt được điều này? Tôi có thể thấy các lớp và phong cách nhảy xung quanh trong các công cụ dev, vì vậy JavaScript chắc chắn là có liên quan, nhưng tôi không thể tìm thấy phần có liên quan của chính kịch bản đó.

+0

https://productforums.google.com/forum/#!topic/drive/0ojbJMr06ro – Justinas

+1

Tôi đoán họ đang sử dụng một tấm vải với webgl rendering. Tìm kiếm "canvas" trong javascript. Tôi không chắc chắn chính xác những gì đang xảy ra, vì mã này hơi bị làm xáo trộn (hoặc tốt, được rút gọn) nhưng hãy xem xét API của web và canvas để biết các ý tưởng. –

Trả lời

6

Không khó như vậy, đặc biệt là với html2canvascanvas-glitch.

Về cơ bản, bạn chỉ cần chuyển đổi phần tử DOM thành canvas và sau đó điều chỉnh dữ liệu hình ảnh để đạt được hiệu ứng trục trặc. Và với hai libs này, nhiệm vụ đó trở nên khá tầm thường.

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); 
     }); 
    } 
}); 

Bấm vào đây cho một bản demo: https://jsfiddle.net/ArtBIT/x12gvs1v/

Các vấn đề liên quan