首页 JS特效 html5特效 HTML5+Canvas的黑洞特效

HTML5+Canvas的黑洞特效

HTML5+Canvas的黑洞特效

HTML5+Canvas的黑洞特效



<头>
<元字符集=“utf-8”>
不要失去你的彩虹

<风格>
帆布 {###   位置:绝对;
  顶部:0;
  左:0;
}
</风格>

</头>
<正文>



<脚本>
让 w = c.width = window.innerWidth;
让 h = c.height = window.innerHeight;

const ctx = c.getContext('2d');
常量选项 = {
    十六进制长度:30,
    lenFn: ({ len, t }) =>
      len + Math.sin(t),
    radFn: ({ rad, len, t, 兴奋 }) =>
      rad + (兴奋 + opts.propFn({ len, t }))*2 / 4,
    propFn: ({ len, t }) =>; 
      len / opts.hexLength / 10 - t,
    兴奋Fn: ({ len, t }) =>
       Math.sin(opts.propFn({ len, t }))**2,
    colorFn: ({ rad, 兴奋度, t }) => 
      `hsl(${rad / Math.TAU * 360 + t}, ${兴奋 * 100}%, ${20 + 兴奋 * 50}%)`,
    时间步长: .01,
    随机夹具:8,
  
    重绘颜色: 'rgba(0,0,0,.1)'
  };
让勾号 = 0;

数学.TAU = 6.28318530717958647692;

常量顶点 = [];
顶点类 {
  构造函数({ x, y }) {
    this.len = Math.sqrt(x*x + y*y);
    this.rad = Math.acos(x / this.len) * (y > 0 ? 1 : -1) + .13;
    this.prevPoint = { x, y };
  }
  
  步() {###     const兴奋 = opts.excitementFn({ len: this.len, t: 勾选 });
    常量参数 = { 
      len: this.len,
      拉德:这个.rad,
      t:勾选,
      激动###     };
    const nextLen = opts.lenFn(param);
    const nextRad = opts.radFn(param);
    const color = opts.colorFn(param);
    
    ctx.描边样式 = 颜色;
    ctx.lineWidth = 兴奋 + .2;
    ctx.beginPath();
    ctx.moveTo(this.prevPoint.x, this.prevPoint.y);
    this.prevPoint.x = nextLen * Math.cos(nextRad) +
      Math.random() * (1-兴奋)**2 * opts.randomJig * 2 - opts.randomJig;
    this.prevPoint.y = nextLen * Math.sin(nextRad) +
      Math.random() * (1-兴奋)**2 * opts.randomJig * 2 - opts.randomJig;
    ctx.lineTo(this.prevPoint.x, this.prevPoint.y);
    ctx.中风();
  }
  
  静态生成(){
    顶点.长度 = 0; 
    const hexCos = Math.cos(Math.TAU / 12) * opts.hexLength;
    const hexSin = Math.sin(Math.TAU / 12) * opts.hexLength;

  
    让alternanceX = false;
    for(令 x = 0; x < w; x += hexCos) {
      让alternance = alternanceX = !alternanceX;
      for(let y = 0; y < h; y += hexSin + opts.hexLength) {
        交替 = !交替;
        顶点.push(新顶点({
          x: x - w / 2,
          y: y + 交替 * hexSin - h / 2
        }))
      }
    }
    
  }
}

顶点.gen();

ctx.fillStyle = '#222';
ctx.fillRect(0, 0, w, h);
const anim = () =>; {
#   window.requestAnimationFrame(anim);
  
  勾选 += opts.timeStep;
  
  ctx.fillStyle = opts.repaintColor;
  ctx.fillRect(0, 0, w, h);
  
  ctx.translate(w/2, h/2);
  vertices.forEach((vertex) => vertex.step());
  ctx.translate(-w/2, -h/2);
}
动画();

window.addEventListener('调整大小', () => {
  w = c.width = window.innerWidth;
  h = c.height = window.innerHeight;
  
  顶点.gen();
  勾选= 0;
  ctx.fillStyle = '#222';
  ctx.fillRect(0, 0, w, h);
})
</脚本>

</body>

</html>

这是一个HTML5+Canvas的特效,需要的朋友可以直接下载使用,更多特效代码尽在PHP中文网。

免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

关于css3的详细介绍 关于css3的详细介绍

15 Jun 2017

基于HTML5的应用现在已经非常广泛,今天我们就来向大家分享20款非常绚丽的HTML5/CSS3应用插件。希望大家喜欢并分享给你的好友们。1、HTML5视频破碎重组特效 强大视觉冲击HTML5视频播放器很多,但是HTML5视频特效还是很少见的,这款HTML5视频破碎重组特效非常刺激,给人强大的视觉冲击。点击视频任意地方,HTML5将会将这些区域击碎,过一段时间,这些被击碎的视频碎片又将自动重新组合...

纯HTML5 CSS3制作图片旋转 纯HTML5 CSS3制作图片旋转

05 Jun 2018

这篇文章主要介绍了纯HTML5 CSS3制作图片旋转,HTML5结合CSS3 实现的一些动画特效,实现起来比较容易,感兴趣的小伙伴们可以参考一下

如何在 HTML5 本地和会话存储中存储和检索复杂的 JavaScript 对象? 如何在 HTML5 本地和会话存储中存储和检索复杂的 JavaScript 对象?

28 Dec 2024

HTML5 中对象的存储本地和会话存储查询:HTML5 的 localStorage 和 sessionStorage 能够有效存储原始数据...

在 HTML5 中的标题标签内使用段落元素是否有效? 在 HTML5 中的标题标签内使用段落元素是否有效?

12 Nov 2024

HTML5 的标题标签内段落元素标记是否有效?在 HTML5 中,标题标签内段落元素的使用一直是...

为什么我的 HTML5 图像有神秘的 3px 底部边距? 为什么我的 HTML5 图像有神秘的 3px 底部边距?

19 Dec 2024

HTML5 之谜:图像出现意外的边距考虑将网站转换为 HTML5 时遇到的一个特殊问题。没想到,每...

如何在HTML5本地存储中实现过期时间? 如何在HTML5本地存储中实现过期时间?

29 Oct 2024

HTML5 本地存储中的持久数据:限制和替代方案HTML5 中的 DOM 存储,特别是本地存储,提供了一种方便的...

css3 transform属性详解及transform使用总结 css3 transform属性详解及transform使用总结

07 Jun 2017

​近年来 HTML5 和 CSS3 发展迅速,国内外不乏一些大站,酷站都在使用最新的技术,各家厂商的浏览器对它们的兼容性越来越好。CSS3中有一个强大的属性 Transform。有了这个特性,各种特效轻松搞定。

分享JavaScript中常用的时间特效 分享JavaScript中常用的时间特效

08 Sep 2017

JS时间特效最常用的三款 ,为大家分享的JS时间特效代码如下 &lt;head> &lt;title>3个最常用的JS时间特效&lt;/title> &lt;/head> &lt;body> &lt;table width="298" border="0" cellspacing="0" cellpadding="

如何使用 CSS 禁用特定按钮上的鼠标悬停效果? 如何使用 CSS 禁用特定按钮上的鼠标悬停效果?

27 Nov 2024

禁用特定按钮上的鼠标悬停效果使用 CSSAiming 禁用网页中特定按钮的鼠标悬停效果,您...

See all articles See all articles

Hot Tools

HTML5 Canvas爱心飘动动画特效

HTML5 Canvas爱心飘动动画特效

HTML5 Canvas爱心飘动动画特效是一款直接用浏览器打开可以看到一颗心的生成动画。

H5熊猫弹跳小游戏源码

H5熊猫弹跳小游戏源码

html5手机熊猫也疯狂小游戏源代码。游戏说明:长按屏幕调整熊猫弹簧的强度,跳到石柱上。掉到河里游戏结束。

html5情人节盒子动画特效

html5情人节盒子动画特效

基于svg绘制情人节一个个爱心盒子礼物打开动画,爱心盒子动画特效。

H5 3D滚球游戏源码

H5 3D滚球游戏源码

html5酷炫3D彩球滚动手机游戏代码下载。游戏介绍:一个彩色圆球滚动,通过鼠标或手机触屏拖动来控制彩球的运行当前线路轨迹。这是一款简单易操作的手机小游戏源码。