# gifffer
**Repository Path**: mirrors_DevExpress/gifffer
## Basic Information
- **Project Name**: gifffer
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-07-28
- **Last Updated**: 2026-01-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Gifffer
---
> JavaScript library that prevents the autoplaying of the animated Gifs.
## Demo
[http://krasimir.github.io/gifffer](http://krasimir.github.io/gifffer)
## Usage
Include `gifffer.min.js` in your page.
```html
```
Instead of setting `src` attribute on your image use `data-gifffer`.
```html
```
At the end, call `Gifffer();` so you replace the normal gifs with playable gifs. For example:
```js
window.onload = function() {
Gifffer();
}
```
For accessibility reasons, instead of setting `alt` attribute on your image, you may use `data-gifffer-alt` (optional).
```html
```
The Gifffer function returns an array of nodes that could be used to simulate clicks. For Example:
```js
window.onload = function() {
var gifs = Gifffer();
setTimeout( function() {
gifs[0].click(); //will play the first gif
}, 1000);
}
```
Gifffer will show the controls immediately if you set `data-gifffer-width` and `data-gifffer-height` even if the image is not fully loaded.
```html
```
*(`data-gifffer-width` accepts percentages value)*
Have in mind that the library keeps the value of the `class` and `id` attributes. They are applied to the newly created element.
If you want to stop the Gif and reset it to its original position afetr a given time interval use `data-gifffer-duration` (in milliseconds).
```
```
### Module Loading (Webpack or Angular ect)
Install npm module
```
npm i --save gifffer
```
Import
```
import Gifffer from 'gifffer';
let gifs = Gifffer();
```
### Typescript
```
npm i --save-dev @types/gifffer
```
## Styling
The `Gifffer()` function accepts a few options for styling:
```
Gifffer({
playButtonStyles: {
'width': '60px',
'height': '60px',
'border-radius': '30px',
'background': 'rgba(0, 0, 0, 0.3)',
'position': 'absolute',
'top': '50%',
'left': '50%',
'margin': '-30px 0 0 -30px'
},
playButtonIconStyles: {
'width': '0',
'height': '0',
'border-top': '14px solid transparent',
'border-bottom': '14px solid transparent',
'border-left': '14px solid rgba(0, 0, 0, 0.5)',
'position': 'absolute',
'left': '26px',
'top': '16px'
}
});
```
That's about the *play* button. Note that if you decide to use `playButtonStyles` or `playButtonIconStyles` you have to provide the full style of the elements. For example providing only `{ top: '20px' }` property results in `top:20px;`.
## How it works
It replaces your `
` tag with newly generated `