日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

html5 实现波浪效果图,利用HTML5实现Canvas流动的波浪特效

發布時間:2025/3/15 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5 实现波浪效果图,利用HTML5实现Canvas流动的波浪特效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

特效描述:利用HTML5實現 Canvas 流動的 波浪特效。利用HTML5實現Canvas流動的波浪特效

代碼結構

1. 引入JS

2. HTML代碼

'use strict';

var gui = new dat.GUI(),

guiSet = {

frequency: 10,

reset: function reset() {

$.reset();

}

};

gui.add(guiSet, 'frequency').min(10).max(50);

gui.add(guiSet, 'reset');

//

var $ = {};

/*========================================

Utility

========================================*/

$.PI = Math.PI;

$.TAU = $.PI * 2;

$.rand = function (min, max) {

if (!max) {

var max = min;

min = 0;

}

return Math.random() * (max - min) + min;

};

/*========================================

Initialize

========================================*/

$.init = function () {

$.c = document.querySelector('canvas');

$.ctx = $.c.getContext('2d');

$.simplex = new SimplexNoise();

$.events();

$.reset();

$.loop();

};

/*========================================

Reset

========================================*/

$.reset = function () {

$.w = window.innerWidth;

$.h = window.innerHeight;

$.cx = $.w / 2;

$.cy = $.h / 2;

$.c.width = $.w;

$.c.height = $.h;

$.count = Math.floor($.w / guiSet.frequency); // Wave frequency

$.xoff = 0;

$.xinc = 0.05;

$.yoff = 0;

$.yinc = 0.01; // Speed

$.goff = 0;

$.ginc = 0;

$.y = $.h * 0.65;

$.length = $.w + 0;

$.amp = 15; // Wave height

};

/*========================================

Event

========================================*/

$.events = function () {

window.addEventListener('resize', $.reset.bind(undefined));

};

/*========================================

Wave

========================================*/

$.wave = function (color, amp, height, comp) {

$.ctx.beginPath();

var sway = $.simplex.noise2D($.goff, 0) * amp;

for (var i = 0; i <= $.count; i++) {

$.xoff += $.xinc;

var x = $.cx - $.length / 2 + $.length / $.count * i;

var y = height + $.simplex.noise2D($.xoff, $.yoff) * amp + sway;

$.ctx[i === 0 ? 'moveTo' : 'lineTo'](x, y);

}

$.ctx.lineTo($.w, -$.h); // -$.h - Vertically reflection

$.ctx.lineTo(0, -$.h); // -$.h - Vertically reflection

$.ctx.closePath();

$.ctx.fillStyle = color;

if (comp) {

$.ctx.globalCompositeOperation = comp;

}

$.ctx.fill();

};

/*========================================

Loop

========================================*/

$.loop = function () {

requestAnimationFrame($.loop);

$.ctx.clearRect(0, 0, $.w, $.h);

$.xoff = 0;

$.ctx.fillStyle = "#182645";

$.ctx.fillRect(0, 0, $.w, $.h);

$.wave("#fb0000", 20, $.h * .5, "screen");

$.wave("#00ff8e", 20, $.h * .5, "screen");

$.wave("#6F33FF", 20, $.h * .5, "screen");

$.ctx.fillStyle = "#f1dfdd";

$.ctx.globalCompositeOperation = "darken";

$.ctx.fillRect(0, 0, $.w, $.h);

$.yoff += $.yinc;

$.goff += $.ginc;

};

/*========================================

Start

========================================*/

$.init();

總結

以上是生活随笔為你收集整理的html5 实现波浪效果图,利用HTML5实现Canvas流动的波浪特效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。