Вход Регистрация
Файл: src/javascript/index.js
Строк: 101
<?php
'use strict';

var 
core = require('./core');
var 
classes = require('./core/-classes');
var 
touches = require('./core/-touches');
var 
changed = require('./core/-changed');
// var scale   = require('./core/-scale');
var keys = require('./core/-keys');

var 
defaults = require('./-defaults');
var 
merge = require('./-merge');

/**
 * Bee3D Slider
 * @param {HTMLElement}    slider parent
 * @param {Object}         options (optional)
 */
function Bee3D(parent, options) {
    var 
opts = merge({}, defaults);
    
this.options = merge(opts, options);
    
this.init(parent);
}

Bee3D.prototype = {
    
init: function (parent) {
        var 
opts = this.options,
            
slides = parent.querySelectorAll(opts.selector);

        
// create slider instance
        
this.el = core(slides);
        
this.el.parent = parent;

        
// init plugins
        
this.plugins();

        
// activate the first slide
        
this.el.slide(this.options.focus);
        
// assign effect to slider--parent
        
classie.add(this.el.parent, 'bee3D--effect__' + this.options.effect);

        
// initialize events
        
this.events();
        
this.slideEvents();

        
// onInit callback
        
this.options.onInit();

        
// let ourselves know we've started
        
this.el.initialized = true;
    },

    
plugins: function () {
        var 
self = this,
            
opts = self.options,
            
funcs = [
                
classes(opts),
                
changed(opts.onChange)
            ];

        
// if turned on...
        
if (opts.listeners.keys) funcs.push(keys());
        if (
opts.listeners.touches) funcs.push(touches());

        
// init plugin funcs
        
(funcs || []).forEach(function (plugin) {
            
plugin(self.el);
        });
    },

    
events: function () {
        var 
opts = this.options;

        if (
opts.sync.enabled) this.sync();
        if (
opts.ajax.enabled) this.ajax();
        if (
opts.loop.enabled) this.loop();
        if (
opts.autoplay.enabled) this.autoplay();
        if (
opts.navigation.enabled) this.navigation();
        if (
opts.listeners.scroll) this.mouseScroll();
        if (
opts.listeners.drag) this.mouseDrag();
    },

    
slideEvents: function (slides) {
        var 
opts = this.options;

        if (!
slides) slides = this.el.slides;

        if (
opts.shadows.enabled) this.shadows(slides);
        if (
opts.parallax.enabled) this.parallax(slides);
        if (
opts.listeners.clicks) this.clickInactives(slides);
    },

    
sync: require('./features/sync'),
    
ajax: require('./features/ajax'),
    
loop: require('./features/loop'),
    
shadows: require('./features/shadows'),
    
autoplay: require('./features/autoplay'),
    
navigation: require('./features/navigation'),
    
parallax: require('./features/parallax'),

    
clickInactives: require('./features/clickInactives'),
    
mouseScroll: require('./features/mouseScroll'),
    
mouseDrag: require('./features/mouseDrag'),

    
destroy: require('./core/-destroy'),

    
// --- helpers
    
listenToHover: require('./features/autoplay/-listenToHover')
};

module.exports = Bee3D;
?>
Онлайн: 2
Реклама