@glidejs/glide
Version:
Glide.js is a dependency-free JavaScript ES6 slider and carousel. It’s lightweight, flexible and fast. Designed to slide. No less, no more
60 lines (52 loc) • 1.1 kB
JavaScript
import EventsBinder from '../core/event/events-binder'
export default function (Glide, Components, Events) {
/**
* Instance of the binder for DOM Events.
*
* @type {EventsBinder}
*/
const Binder = new EventsBinder()
const Images = {
/**
* Binds listener to glide wrapper.
*
* @return {Void}
*/
mount () {
this.bind()
},
/**
* Binds `dragstart` event on wrapper to prevent dragging images.
*
* @return {Void}
*/
bind () {
Binder.on('dragstart', Components.Html.wrapper, this.dragstart)
},
/**
* Unbinds `dragstart` event on wrapper.
*
* @return {Void}
*/
unbind () {
Binder.off('dragstart', Components.Html.wrapper)
},
/**
* Event handler. Prevents dragging.
*
* @return {Void}
*/
dragstart (event) {
event.preventDefault()
}
}
/**
* Remove bindings from images:
* - on destroying, to remove added EventListeners
*/
Events.on('destroy', () => {
Images.unbind()
Binder.destroy()
})
return Images
}