Extending Transformers
Glide uses transformers to mutate translate
value. They mutates it's value to achieve e.q. centered focusing or right-to-left movement.
Using Transformers
The transformer is a simple function
that returns an object
with modify()
method.
It's importand to understand that transformers works like piplines - previously modified value is passed to the next transformer, so order of transformers matters!
Creating Custom Transformers
Inside component constructor you have access to three arguments that are passed on initialization:
{Glide} Glide
- A current instance of the Glide class,{Object} Components
- A collection of all registered components,{EventsBus} Events
- A instance of EventsBus class for events interaction.
A constructor should return an object. It have to contains a modify()
method which receives current translate value as a argument. The modify()
method should always return a Number
.
/**
* Update translate value by 100.
*
* @param {Glide} Glide
* @param {Object} Components
* @param {EventsBus} Events
* @return {Object}
*/
var Example = function (Glide, Components, Events) {
return {
/**
* Modifies passed translate value by 100 pixels.
*
* @param {Number} translate
* @return {Number}
*/
modify (translate) {
return translate + 100
}
}
}
Registering Transformers
In order to register created transformer, pass an array of transformers to mutate()
method at Glide initialization.
Important! Transformers should be registered before
mount()
call.
var Example = function (Glide, Components, Events) {
return {
modify (translate) {
//
}
}
}
new Glide('.glide')
.mutate([Example])
.mount()