鼠标跟随动画

This commit is contained in:
tangly1024.com
2024-05-06 09:35:12 +08:00
parent 4d6ffad140
commit e553c7594f
4 changed files with 753 additions and 1 deletions

View File

@@ -23,6 +23,9 @@ const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), {
const Fireworks = dynamic(() => import('@/components/Fireworks'), {
ssr: false
})
const MouseFollow = dynamic(() => import('@/components/MouseFollow'), {
ssr: false
})
const Nest = dynamic(() => import('@/components/Nest'), { ssr: false })
const FlutteringRibbon = dynamic(
() => import('@/components/FlutteringRibbon'),
@@ -119,6 +122,7 @@ const ExternalPlugin = props => {
const CLARITY_ID = siteConfig('CLARITY_ID')
const IMG_SHADOW = siteConfig('IMG_SHADOW')
const ANIMATE_CSS_URL = siteConfig('ANIMATE_CSS_URL')
const MOUSE_FOLLOW = siteConfig('MOUSE_FOLLOW')
// 自定义样式css和js引入
if (isBrowser) {
@@ -172,7 +176,7 @@ const ExternalPlugin = props => {
<>
{/* 全局样式嵌入 */}
<GlobalStyle />
{MOUSE_FOLLOW && <MouseFollow />}
{THEME_SWITCH && <ThemeSwitch />}
{DEBUG && <DebugPanel />}
{ANALYTICS_ACKEE_TRACKER && <Ackee />}

27
components/MouseFollow.js Normal file
View File

@@ -0,0 +1,27 @@
import { useEffect } from 'react'
// import anime from 'animejs'
import { siteConfig } from '@/lib/config'
import { loadExternalResource } from '@/lib/utils'
/**
* 鼠标跟随特效
* @returns
*/
const MOUSE_FOLLOW = () => {
const type = siteConfig('MOUSE_FOLLOW_EFFECT_TYPE')
const color = siteConfig('MOUSE_FOLLOW_EFFECT_COLOR')
useEffect(() => {
loadExternalResource('/js/mouse-follow.js', 'js').then(url => {
if (window.createMouseCanvas) {
window.createMouseCanvas()({
type,
color
})
}
})
}, [])
return <></>
}
export default MOUSE_FOLLOW