Файл: 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');
});
};
};
?>