Puock 网站点击特效

105次阅读
没有评论

共计 1541 个字符,预计需要花费 4 分钟才能阅读完成。

关于我的想法

就是扒一下  aplayer 官网后面的背景条变化,确实好看又简单,主要是本人真的不喜欢太繁琐,光标变化呀,光标点击样式啊,达咩!

首先去网站F12,擦,有三个JS都不认识,还好有地址,不管了,交给小克分析一下到底是谁,哪个JS这么好看,哦,原来是你小子 evanyou.min.js实现的样式条变化,还是写VUE大佬写的,自己网站引入试试,至于拖慢多少运行速度,无所谓,反正博客又没人看

在主题文件夹下fuction.php下 添加方法 引入JS 

function addEvanyouJs() {
    wp_enqueue_script('evanyou', pk_get_static_url() . '{你的路径}', [], PUOCK_CUR_VER_STR,true);
}
add_action('wp_enqueue_scripts', 'addEvanyouJs');

在footer.php中添加组件,至于为什么在footer中添加,别问我 我也不知道 只跟它熟 关系好一点

<canvas id="evanyou-canvas"
        style="position: fixed;
               top: 0; left: 0;
               width: 100%; height: 100%;
               z-index: -1;
               pointer-events: none;">
</canvas>

JS文件 略作修改 官方是不断在变化那种 让ai改了下 咱也懒得动那个脑子 改为点击变换 自己改下名称添加到合适的位置 在function中引入就行

(function () {
  var c = document.getElementById('evanyou-canvas'),
      x = c.getContext('2d'),
      pr = window.devicePixelRatio || 1,
      w = window.innerWidth,
      h = window.innerHeight,
      f = 90,
      q,
      m = Math,
      r = 0, // 用于颜色角度变化
      u = m.PI * 2,
      v = m.cos,
      z = Math.random;

  c.width = w * pr;
  c.height = h * pr;
  x.scale(pr, pr);
  x.globalAlpha = 0.6;

  function i() {
    x.clearRect(0, 0, w, h);
    q = [{x: 0, y: h * 0.7 + f}, {x: 0, y: h * 0.7 - f}];
    while (q[1].x < w + f) d(q[0], q[1]);
  }

  function d(i, j) {
    x.beginPath();
    x.moveTo(i.x, i.y);
    x.lineTo(j.x, j.y);
    var k = j.x + (z() * 2 - 0.25) * f,
        n = y(j.y);
    x.lineTo(k, n);
    x.closePath();
    r -= u / -50;
    x.fillStyle = '#' + (
      (v(r) * 127 + 128 << 16) |
      (v(r + u / 3) * 127 + 128 << 8) |
      (v(r + u / 3 * 2) * 127 + 128)
    ).toString(16);
    x.fill();
    q[0] = q[1];
    q[1] = {x: k, y: n};
  }

  function y(p) {
    var t = p + (z() * 2 - 1.1) * f;
    return (t > h || t < 0) ? y(p) : t;
  }

  // 初始绘制一次
  i();

  // 添加点击事件:每次点击刷新画面
  window.addEventListener('click', function () {
    i(); // 重新绘制一次
  });
  
  window.addEventListener('resize', function () {
    w = window.innerWidth;
    h = window.innerHeight;
    c.width = w * pr;
    c.height = h * pr;
    x.scale(pr, pr);
    i();
  });
})();

正文完
 2
grbox
版权声明:本站原创文章,由 grbox 于2025-07-03发表,共计1541字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码