44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
# ani-cursor
|
|
|
|
A library for rendering Windows Animated Cursor files (`.ani`) in the browser by parsing out the individual frames and constructing a CSS animation.
|
|
|
|
Built to support `.ani` files in Winamp skins for https://webamp.org.
|
|
|
|
I wrote a blog post about this library which you can find [here](https://jordaneldredge.com/blog/rendering-animated-ani-cursors-in-the-browser/).
|
|
|
|
## Install
|
|
|
|
```bash
|
|
yarn add ani-cursor
|
|
```
|
|
|
|
or
|
|
|
|
```bash
|
|
npm install ani-cursor
|
|
```
|
|
|
|
## Usage Example
|
|
|
|
```JavaScript
|
|
import {convertAniBinaryToCSS} from 'ani-cursor';
|
|
|
|
async function applyCursor(selector, aniUrl) {
|
|
const response = await fetch(aniUrl);
|
|
const data = new Uint8Array(await response.arrayBuffer());
|
|
|
|
const style = document.createElement('style');
|
|
style.innerText = convertAniBinaryToCSS(selector, data);
|
|
|
|
document.head.appendChild(style);
|
|
}
|
|
|
|
const h1 = document.createElement('h1');
|
|
h1.id = 'pizza';
|
|
h1.innerText = 'Pizza Time!';
|
|
document.body.appendChild(h1);
|
|
|
|
applyCursor("#pizza", "https://archive.org/cors/tucows_169906_Pizza_cursor/pizza.ani");
|
|
```
|
|
|
|
Try the [Live Demo on CodeSandbox](https://codesandbox.io/s/jolly-thunder-9jkio?file=/src/index.js). |