Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🖱 An animated custom cursor effects for interactive elements like navigation - w/ VueJS - SSR Compatible

License

NotificationsYou must be signed in to change notification settings

LuXDAmore/vue-cursor-fx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code QualityDownloadsDependenciesVersionDonate

An animated custom cursor effects for interactive elements like navigation - w/ VueJS - SSR Compatible

Installation

This package is available onnpm andyarn.

# Deps    npm install --save @luxdamore/vue-cursor-fx# Or    yarn add @luxdamore/vue-cursor-fx

Usage

As component

// Global component and cssimport{CursorFx}from'@luxdamore/vue-cursor-fx';import'@luxdamore/vue-cursor-fx/dist/CursorFx.css';// InstallVue.component(CursorFx.name,CursorFx);// Or, in a .vue fileimport{CursorFx}from'@luxdamore/vue-cursor-fx';exportdefault{components:{'cursor-fx':CursorFx,},};<stylesrc="@luxdamore/vue-cursor-fx/dist/CursorFx.css"></style>

As a global plugin

// PluginimportCursorFxfrom'@luxdamore/vue-cursor-fx';import'@luxdamore/vue-cursor-fx/dist/CursorFx.css';// InstallVue.use(CursorFx);

Browser's way

<!doctype html><html><head><!-- CursorFx styles --><!-- Old way --><linkrel="stylesheet"href="https://unpkg.com/@luxdamore/vue-cursor-fx@latest/dist/CursorFx.css"/><!-- end old way --><!-- New way --><linkrel="preload"href="https://unpkg.com/@luxdamore/vue-cursor-fx@latest/dist/CursorFx.css"as="style"onload="this.rel='stylesheet'"/><linkrel="preload"href="https://unpkg.com/@luxdamore/vue-cursor-fx@latest/dist/CursorFx.umd.min.js"as="script"/><!-- end new way --><!-- end CursorFx styles --></head><body><!--                Others script (ex. VueJs) and html.            --><!-- CursorFx script --><scriptsrc="https://unpkg.com/@luxdamore/vue-cursor-fx@latest/dist/CursorFx.umd.min.js"></script><!-- end CursorFx script --></body></html>

Markup

Use one time in the main file of your project or in every views, where you want it.

<buttontype="button"title="Special button"data-cursor-hover>        Add `data-cursor-hover` to an every html elements that you want to see the cursor bigger on hover</button><buttontype="button"title="Special button"data-cursor-hidden>        Add `data-cursor-hidden` to an every html elements that you want to hide the cursor on hover</button><buttontype="button"title="Special button"data-cursor-hoverdata-cursor-mix-blend-mode="difference">        Add `data-cursor-mix-blend-mode` to an every html elements that you want to change the mix-blend-mode type.</button><cursor-fx/>

Options

N.B.: the cursor is not activated on touchscreen devices.

Slots

# Available    slot="default"# Add some content in the middle of the cursor

Events

<cursor-fx@before-start="onBeforeStart"@after-start="onAfterStart"@ready="onReady"@before-destroy="onBeforeDestroy"@after-destroy="onAfterDestroy"></cursor-fx>

Props

AttributeTypeDefault valueAbout
configObject{}The default options applied to cursor, see below theBASE_CONFIG
colorString#333333Color for the cursor
color-hoverString#333333Color, on hover, for the cursor
outside-sizeStringnullThe size of outer circle
inside-sizeStringnullThe size of inner dot
shapeStringnullOnly available shapes arecircle andsquare
delayString, Number60Activate cursor after x seconds
mix-blend-modeStringnullSet the globalmix-blend-mode style
force-custom-slotBooleanfalseShow or hide the internal default slot
allow-on-mobileBooleanfalseAllow the cursor on mobile devices
hide-outsideBooleanfalseHide outer circle
hide-insideBooleanfalseHide inner dot
disabledBooleanfalseDisable the activation of the cursor
constBASE_CONFIG={lerps:{dot:1,circle:0.18,custom:0.23,},scale:{ratio:0.18,min:0.5,max:1,},opacity:0.1,};

Methods

<!-- component.vue --><template><div><!-- start it, later --><cursor-fxref="cursor"disabled/></div></template><!-- Component --><script>exportdefault{mounted(){// start it, on mounted, or wherever you wantthis.$refs.cursor.start();},methods:{others(){// destroythis.$refs.cursor.destroy();//-> refresh automate: `destroy()` and `start()`this.$refs.cursor.refresh();},}},</script>

Integrations

VueRouter
<!-- App.vue --><template><div><router-view></router-view><cursor-fxref="cursor"/></div></template>
NuxtJs
  • For the entire website: place the component in the desired layouts (ex. layouts/default.vue);
  • For some pages only: place the component in the desired pages (ex. pages/index.vue).
<!-- layout/default.vue --><template><div><main><nuxt/></main><cursor-fxref="cursor"/></div></template>
Tips
  • Q: How to fix problem with the disappearance of the cursor on nuxt route change ?
  • A: Trigger cursor refresh on route change where component is placed.
watch:{$route(to,from){this.$nextTick(()=>this.$refs.cursor.refresh());},},

👩🏻‍💻👨🏻‍💻 Development

  1. Clone the repository:
    • git clone https://github.com/LuXDAmore/vue-cursor-fx.git;
  2. Install dependencies:
    • yarn install (ornpm install);
  3. Start a development server:
    • yarn dev (ornpm run dev);
  4. Extra, build the documentation (Github Pages):
    • yarn build (ornpm run build);
    • the content is automatically generated into the/docs folder.

🐞 Issues

Please make sure to read theissue reporting checklist before opening an issue.Issues not conforming to the guidelines may be closed immediately.

📝 Discussions

We're usingGithub discussions as a place to connect with other members of our community.You are free to ask questions and share ideas, so enjoy yourself.

👥 Contribution

Please make sure to read thecontributing guide before making a pull request.

📖 Changelog

Details changes for each release are documented in therelease notes.

🆓 License

MIT License // Copyright (©) 2019-nowLuca Iaconelli

💼 Hire me

Contacts

💸 Are you feeling generous today?

If You want to share a beer, we can be really good friends 😄

Paypal //Patreon //Ko-fi

It's always a good day to be magnanimous - cit.


💡 Lighthouse

Lighthouse audit score


💘 Inspired by

CustomCursors by Tympanus


[8]ページ先頭

©2009-2025 Movatter.jp