canvas实现爱心和彩虹雨的效果
本文主要介绍了canvas实现爱心和彩虹雨效果的实例,具有很好的参考价值。下面一起来看下吧
效果图:
代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <canvas id="canvas"></canvas> <script> var canvas = document.getElementById('canvas'), ctx = canvas.getContext('2d'), canvasW = canvas.width = window.innerWidth, canvasH = canvas.height = window.innerHeight, canvasWHalf = canvasW / 2, canvasHHalf = canvasH / 2, xoff = canvasWHalf - 306, yoff = 50, bg = '00061a', id = 0, raindrops = [], minSize = 1, maxSize = 4, minSpeed = 5, maxSpeed = 20, minHue = 0, maxHue = 360, maxAmount = 50; function random(min, max) { if (arguments.length < 2) { max = min; min = 0; } return Math.floor(Math.random() * (max - min) + min); } function hexToRGB(hex, opacity) { var rgb = ''; hex.match(/.{2}/g).forEach(function(n) { rgb += (parseInt(n, 16)) + ','; }); return 'rgba(' + rgb + opacity + ')'; } function draw() { // Heart ctx.fillStyle = hexToRGB(bg, '0.1'); ctx.beginPath(); // Left half ctx.moveTo(0, 0); ctx.lineTo(canvasWHalf, 0); ctx.lineTo(304 + xoff, 97 + yoff); ctx.bezierCurveTo(282 + xoff, -5 + yoff, 80 + xoff, -6 + yoff, 76 + xoff, 165 + yoff); ctx.bezierCurveTo(74 + xoff, 251 + yoff, 184 + xoff, 300 + yoff, 304 + xoff, 447 + yoff); ctx.lineTo(canvasWHalf, canvasH); ctx.lineTo(0, canvasH); // Right half ctx.moveTo(canvasW, 0); ctx.lineTo(canvasWHalf, 0); ctx.lineTo(304 + xoff, 97 + yoff); ctx.bezierCurveTo(326 + xoff, 5 + yoff, 528 + xoff, 6 + yoff, 532 + xoff, 165 + yoff); ctx.bezierCurveTo(534 + xoff, 251 + yoff, 424 + xoff, 300 + yoff, 304 + xoff, 447 + yoff); ctx.lineTo(canvasWHalf, canvasH); ctx.lineTo(canvasW, canvasH); ctx.closePath(); ctx.fill(); // Raindrops for (var i = 1; i < id; i++) { raindrops[i].fall(); }; } var Raindrop = function() { id++; this.y = random(-canvasH); this.x = random(canvasW); this.size = random(minSize, maxSize); this.speed = random(minSpeed, maxSpeed); this.color = 'hsl(' + random(minHue, maxHue) + ',100%,55%)'; this.origColor = this.color; this.id = id; raindrops[id] = this; }; Raindrop.prototype.fall = function() { this.y += this.speed; if (this.y >= canvasH) { this.y = random(-canvasH); this.x = random(canvasW); } ctx.save(); ctx.beginPath(); var gradient = ctx.createRadialGradient(this.x, this.y, 0, this.x, this.y, this.size); gradient.addColorStop(0, '#fff'); gradient.addColorStop(0.5, this.color); gradient.addColorStop(1, hexToRGB(bg, 0)); ctx.rect(this.x, this.y, this.size, maxSpeed); ctx.fillStyle = gradient; ctx.fill(); ctx.closePath(); ctx.restore(); }; (function init() { ctx.fillStyle = '#' + bg; ctx.fillRect(0, 0, canvasW, canvasH); for (var i = 0; i < maxAmount; i++) { new Raindrop(); } }()); function animate() { draw(); window.requestAnimationFrame(animate); } window.requestAnimationFrame(animate); function mouseTrail(x, y) { ctx.save(); ctx.globalCompositeOperation = 'overlay'; ctx.fillStyle = 'rgba(255,255,255,0.1)'; ctx.arc(x, y, 50, 0, Math.PI * 2); ctx.fill(); ctx.restore(); } window.addEventListener('mousemove', function(cursor) { mouseTrail(cursor.x, cursor.y); }); </script> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上是canvas实现爱心和彩虹雨的效果的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

运行 H5 项目需要以下步骤:安装 Web 服务器、Node.js、开发工具等必要工具。搭建开发环境,创建项目文件夹、初始化项目、编写代码。启动开发服务器,使用命令行运行命令。在浏览器中预览项目,输入开发服务器 URL。发布项目,优化代码、部署项目、设置 Web 服务器配置。

H5 页面制作是指使用 HTML5、CSS3 和 JavaScript 等技术,创建跨平台兼容的网页。其核心在于浏览器解析代码,渲染结构、样式和交互功能。常见技术包括动画效果、响应式设计和数据交互。为避免错误,应使用开发者工具调试;而性能优化和最佳实践则包括图像格式优化、减少请求和代码规范等,以提高加载速度和代码质量。

制作 H5 点击图标的步骤包括:在图像编辑软件中准备方形源图像。在 H5 编辑器中添加交互性,设置点击事件。创建覆盖整个图标的热点。设置点击事件的操作,如跳转页面或触发动画。导出 H5 文档为 HTML、CSS 和 JavaScript 文件。将导出的文件部署到网站或其他平台。

H5(HTML5)适合应用于轻量级应用,如营销活动页面、产品展示页面和企业宣传微网站。它优势在于跨平台性和丰富的交互性,但局限性在于复杂的交互和动画、本地资源访问和离线功能。

是的,H5页面制作是前端开发的重要实现方式,涉及HTML、CSS和JavaScript等核心技术。开发者通过巧妙结合这些技术,例如使用<canvas>标签绘制图形或使用JavaScript控制交互行为,构建出动态且功能强大的H5页面。

H5不是独立编程语言,而是HTML5、CSS3和JavaScript的集合,用于构建现代Web应用。1.HTML5定义网页结构和内容,提供新标签和API。2.CSS3控制样式和布局,引入动画等新特性。3.JavaScript实现动态交互,通过DOM操作和异步请求增强功能。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5 弹窗制作步骤:1. 确定触发方式(点击式、时间式、退出式、滚动式);2. 设计内容(标题、正文、行动按钮);3. 设置样式(大小、颜色、字体、背景);4. 实现代码(HTML、CSS、JavaScript);5. 测试和部署。
