Вход Регистрация
Файл: src/javascript/core/-classes.js
Строк: 44
<?php
module
.exports = function (opts) {
    var 
baseClass = 'bee3D--';
    var 
isLoop = opts.loop.continuous;
    var 
loopOffset = opts.loop.offset;

    return function (
slider) {
        var 
length = slider.slides.length;

        var 
addClass = function (el, cls) {
                
classie.add(el, baseClass + cls);
            },

            
removeClass = function (el, cls) {
                
el.className = el.className.replace(new RegExp(baseClass + cls + '(\s|$)', 'g'), ' ').trim();
            },

            
deactivate = function (el, index) {
                var 
active = slider.slide(),
                    
offset = index - active,
                    
offsetClass = offset > 0 ? 'after' : 'before';

                if (
isLoop) {
                    var 
boundary = length - loopOffset - 1;

                    if (
offset >= boundary) {
                        
offsetClass = 'before';
                        
offset = length - offset;
                    }

                    if (
offset <= -boundary) {
                        
offsetClass = 'after';
                        
offset = length + offset;
                    }
                }

                [
'before(-\d+)?', 'after(-\d+)?', 'slide__active', 'slide__inactive'].map(removeClass.bind(null, el));

                if (
index !== active) {
                    [
'slide__inactive', offsetClass, offsetClass + '-' + Math.abs(offset)].map(addClass.bind(null, el));
                }
            };

        
// add parent class if not already there
        
addClass(slider.parent, 'parent');

        
// add bee3D--slide class to all slides ONLY if options.selector was changed
        
if (!opts.slideSelector !== '.bee3D--slide') {
            
slider.slides.forEach(function (el) {
                
addClass(el, 'slide');
            });
        }

        
slider.on('activate', function (e) {
            
slider.slides.map(deactivate);
            
addClass(e.slide, 'slide__active');
            
removeClass(e.slide, 'slide__inactive');
        });
    };
};
?>
Онлайн: 1
Реклама