Skip to content

Commit 5da1ce1

Browse files
committed
2 parents 06417a9 + 7b20d37 commit 5da1ce1

File tree

4 files changed

+754
-2
lines changed

4 files changed

+754
-2
lines changed

blog.config.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,13 @@ const BLOG = {
236236
'251, 243, 140'
237237
],
238238

239+
// 鼠标跟随特效
240+
MOUSE_FOLLOW: process.env.NEXT_PUBLIC_MOUSE_FOLLOW || true, // 开关
241+
// 这两个只有在鼠标跟随特效开启时才生效
242+
// 鼠标类型 1:路劲散点 2:下降散点 3:上升散点 4:边缘向鼠标移动散点 5:跟踪转圈散点 6:路径线条 7:聚集散点 8:聚集网格 9:移动网格 10:上升粒子 11:转圈随机颜色粒子 12:圆锥放射跟随蓝色粒子
243+
MOUSE_FOLLOW_EFFECT_TYPE: 11, // 1-12
244+
MOUSE_FOLLOW_EFFECT_COLOR: '#ef672a', // 鼠标点击特效颜色 #xxxxxx 或者 rgba(r,g,b,a)
245+
239246
// 樱花飘落特效
240247
SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
241248
// 漂浮线段特效
@@ -331,7 +338,7 @@ const BLOG = {
331338
process.env.NEXT_PUBLIC_COMMENT_TWIKOO_COUNT_ENABLE || false, // 博客列表是否显示评论数
332339
COMMENT_TWIKOO_CDN_URL:
333340
process.env.NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL ||
334-
'https://cdn.staticfile.org/twikoo/1.6.17/twikoo.min.js', // twikoo客户端cdn
341+
'https://cdn.staticfile.net/twikoo/1.6.17/twikoo.min.js', // twikoo客户端cdn
335342

336343
// utterance
337344
COMMENT_UTTERRANCES_REPO:

components/ExternalPlugins.js

+5-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), {
2323
const Fireworks = dynamic(() => import('@/components/Fireworks'), {
2424
ssr: false
2525
})
26+
const MouseFollow = dynamic(() => import('@/components/MouseFollow'), {
27+
ssr: false
28+
})
2629
const Nest = dynamic(() => import('@/components/Nest'), { ssr: false })
2730
const FlutteringRibbon = dynamic(
2831
() => import('@/components/FlutteringRibbon'),
@@ -119,6 +122,7 @@ const ExternalPlugin = props => {
119122
const CLARITY_ID = siteConfig('CLARITY_ID')
120123
const IMG_SHADOW = siteConfig('IMG_SHADOW')
121124
const ANIMATE_CSS_URL = siteConfig('ANIMATE_CSS_URL')
125+
const MOUSE_FOLLOW = siteConfig('MOUSE_FOLLOW')
122126

123127
// 自定义样式css和js引入
124128
if (isBrowser) {
@@ -172,7 +176,7 @@ const ExternalPlugin = props => {
172176
<>
173177
{/* 全局样式嵌入 */}
174178
<GlobalStyle />
175-
179+
{MOUSE_FOLLOW && <MouseFollow />}
176180
{THEME_SWITCH && <ThemeSwitch />}
177181
{DEBUG && <DebugPanel />}
178182
{ANALYTICS_ACKEE_TRACKER && <Ackee />}

components/MouseFollow.js

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { useEffect } from 'react'
2+
// import anime from 'animejs'
3+
import { siteConfig } from '@/lib/config'
4+
import { loadExternalResource } from '@/lib/utils'
5+
6+
/**
7+
* 鼠标跟随特效
8+
* @returns
9+
*/
10+
const MOUSE_FOLLOW = () => {
11+
const type = siteConfig('MOUSE_FOLLOW_EFFECT_TYPE')
12+
const color = siteConfig('MOUSE_FOLLOW_EFFECT_COLOR')
13+
14+
useEffect(() => {
15+
loadExternalResource('/js/mouse-follow.js', 'js').then(url => {
16+
if (window.createMouseCanvas) {
17+
window.createMouseCanvas()({
18+
type,
19+
color
20+
})
21+
}
22+
})
23+
}, [])
24+
25+
return <></>
26+
}
27+
export default MOUSE_FOLLOW

0 commit comments

Comments
 (0)