学习
实践
活动
专区
工具
TVP
写文章
专栏首页云+分享Hexo博客 | 如何让你的博客拥有星空背景和流星特效

Hexo博客 | 如何让你的博客拥有星空背景和流星特效

最近很多小伙伴留言想要星空和流星特效,于是写了这篇文章准备介绍如何部署。

1. 插入Canvas标签

首先打开Butterfly主题的_config.yml文件或者使用HTML直接插入,找到配置文件对应的inject部分,插入<canvas id="universe"></canvas>

2. 创建JS文件

butterfly/source/js/创建一个universe.js文件,或者添加到自己的js文件中

function dark() {window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;var n,e,i,h,t=.05,s=document.getElementById("universe"),o=!0,a="180,184,240",r="226,225,142",d="226,225,224",c=[];function f(){n=window.innerWidth,e=window.innerHeight,i=.216*n,s.setAttribute("width",n),s.setAttribute("height",e)}function u(){h.clearRect(0,0,n,e);for(var t=c.length,i=0;i<t;i++){var s=c[i];s.move(),s.fadeIn(),s.fadeOut(),s.draw()}}function y(){this.reset=function(){this.giant=m(3),this.comet=!this.giant&&!o&&m(10),this.x=l(0,n-10),this.y=l(0,e),this.r=l(1.1,2.6),this.dx=l(t,6*t)+(this.comet+1-1)*t*l(50,120)+2*t,this.dy=-l(t,6*t)-(this.comet+1-1)*t*l(50,120),this.fadingOut=null,this.fadingIn=!0,this.opacity=0,this.opacityTresh=l(.2,1-.4*(this.comet+1-1)),this.do=l(5e-4,.002)+.001*(this.comet+1-1)},this.fadeIn=function(){this.fadingIn&&(this.fadingIn=!(this.opacity>this.opacityTresh),this.opacity+=this.do)},this.fadeOut=function(){this.fadingOut&&(this.fadingOut=!(this.opacity<0),this.opacity-=this.do/2,(this.x>n||this.y<0)&&(this.fadingOut=!1,this.reset()))},this.draw=function(){if(h.beginPath(),this.giant)h.fillStyle="rgba("+a+","+this.opacity+")",h.arc(this.x,this.y,2,0,2*Math.PI,!1);else if(this.comet){h.fillStyle="rgba("+d+","+this.opacity+")",h.arc(this.x,this.y,1.5,0,2*Math.PI,!1);for(var t=0;t<30;t++)h.fillStyle="rgba("+d+","+(this.opacity-this.opacity/20*t)+")",h.rect(this.x-this.dx/4*t,this.y-this.dy/4*t-2,2,2),h.fill()}else h.fillStyle="rgba("+r+","+this.opacity+")",h.rect(this.x,this.y,this.r,this.r);h.closePath(),h.fill()},this.move=function(){this.x+=this.dx,this.y+=this.dy,!1===this.fadingOut&&this.reset(),(this.x>n-n/4||this.y<0)&&(this.fadingOut=!0)},setTimeout(function(){o=!1},50)}function m(t){return Math.floor(1e3*Math.random())+1<10*t}function l(t,i){return Math.random()*(i-t)+t}f(),window.addEventListener("resize",f,!1),function(){h=s.getContext("2d");for(var t=0;t<i;t++)c[t]=new y,c[t].reset();u()}(),function t(){document.getElementsByTagName('html')[0].getAttribute('data-theme')=='dark'&&u(),window.requestAnimationFrame(t)}()};
dark()

代码的这一部分要求data-theme也就是主题为dark暗色主题,因此仅在暗色主题生效,随后将js文件添加到配置文件的inject处或者其他需要的位置。

3. CSS样式

/* 背景宇宙星光  */
#universe{
  display: block;
  position: fixed;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1;
}
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.justlovesmile.top复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Hexo博客 | 如何让你的valine更好看

    之前写了一个博客中能用到的代码(二),这是第三篇 这篇文章介绍valine的样式优化

    Justlovesmile
  • LuckyBlog开源搭建教程

    之前在B站上发布了个人博客的视频,播放量也破千了,有网友私聊也想要搭建一个这样的博客。经过一段时间的准备,现将本人博客的源代码公布出来,大家只需要根据以下的步骤...

    LuckySec
  • 基于 Hexo 从零开始搭建个人博客(六)

    2021-04-27 butterfly3.4.0 -> butterfly3.7.1

    唐志远
  • 收藏吃灰,12 个炫酷背景特效库

    vue3 源码实战出来啦:在面试中,害怕被问到 Vue源码,或者想通过自己对Vue 源码的来秀一下面试官的,可以了解一下。

    前端小智@大迁世界
  • Windows环境下搭建一个Hexo博客

    一直说要出一篇从零搭建博客的教程,但是最近真的很忙,一直没有时间,尽量抽出时间将博客教程写出来了,如下,阅读本文需要你有以下技术储备:

    框架师
  • Hexo+Github配置与主题

    每个主题都会配置几种界面显示语言,修改语言只要编辑站点配置文件,找到 language 字段,并将其值更改为你所需要的语言(例如,简体中文):

    smartsi
  • 自定义炫酷的主页

    周末放假回家,给自己的Hexo博客自定义了一个首页,看起来炫酷多了。实现简单,操作步骤稍微繁琐了一点,因为涉及到要修改的东西太多了。需要一点HTML和css基础...

    Bess Croft
  • 如何免费拥有自己的博客

    不要慌,问题不大!没关系,小编一步步带你飞。教你如何从零开始拥有属于自己的博客网站。(仅面向Windows用户,就会有人问Mac 不香吗?香,但是太贵,买不起,...

    DataScience
  • Hexo安装并使用Butterfly主题

    本片文章为本人想要换hexo的主题时所写。因此省略node和hexo的安装,直接在初始化博客开始

    Dreamy.TZK
  • hexo-theme-yun 制作笔记

    还在用 WordPress 的时候,总是喜新厌旧,经常换主题。且装了一堆插件,速度慢还容易崩。 而迁移到 Hexo 之后(小水管服务器太慢,拿去挂 MC 了。根...

    云游君
  • (16)打鸡儿教你Vue.js

    超快速度 Node.js 所带来的超快生成速度,让上百个页面在几秒内瞬间完成渲染。

    达达前端
  • Hexo博客主题之hexo-Theme-Matery的介绍

    当你看到这里的时候,应该已经有一个自己的 Hexo 博客了。如果还没有的话,不妨使用 Hexo 和 Markdown 来写博客和文章。

    Abalone
  • hexo博客自制背景动画(代码雨)

    现在的效果可能有点不太好看,因为是看了很多代码雨的 js 代码,明白了大概如何实现之后依葫芦画瓢做出来的,待未来优化。

    赤蓝紫
  • Mac搭建Hexo博客流程记录,排雷完成

    经过一天的辛苦作战,总算基础的东西出来了。踩了太多的坑,综合我踩坑的经过,明白到,选好一篇引导文很重要!有些步骤不要先做了,不然后面你都不知道怎么死的..

    Jingbin
  • 个人博客搭建

      前前后后大概花了一周多的时间,目前个人博客已经完善的差不多了,现在写个文章做个阶段总结,后续如果有更新的地方,会及时补充。本博客基于Hexo框架,采用hex...

    LuckySec
  • 在 Ubuntu 14.04 服务器上部署 Hexo 博客

    本文将介绍如何在一台 Ubuntu 14.04 的 CVM 云服务器上快速部署 Hexo 博客站点,如何快速发布一篇博文并通过云服务器上的私有 Git 仓库部署...

    EarlGrey
  • Hexo+github搭建个人博客

    https://www.bilibili.com/video/BV1NY4y1C7Ng

    武师叔
  • 个人博客搭建心得

    我是从18年开始写博客,最初的平台选择在博客园,界面比较清爽,但是博客园主要是针对互联网软件行业的,我发的内容相对来说偏硬件,后来转战CSDN,自带图床用的很爽...

    Mculover666

扫码关注腾讯云开发者

领取腾讯云代金券