img-brand.js 1.84 KB
var $ = require('yoho-jquery'),
    lazyLoad = require('yoho-jquery-lazyload');

require('yoho-slider');

exports.init = function(selector, isAuto) {
    var $imgBrand = $(selector);
    var slider = $imgBrand.unslider({
        delay: 5000,
        arrows: false,
        nav: false
    });
    var imgBrandNum = $imgBrand.find('li').length;
    var cols = imgBrandNum / 3;
    var timer;

    if (!($imgBrand.find('li').length % 3)) {
        cols -= 1;
    }

    $imgBrand.find('li:nth-child(3n)').css('margin-right', 0);

    slider.on('unslider.change', function() {
        setTimeout(function() {
            var $lazyImg = $('.img-item img.lazy');

            $lazyImg.each(function(idx, item) {
                var $item = $(item);

                if ($item.attr('src').match('data:image') || $item.attr('src').length === 0) {
                    lazyLoad($item);
                }
            });
        }, 1000);
    });

    $('.img-brand-switch').on('click', '.prev', function() {
        if (slider.data('unslider').current > cols || slider.data('unslider').current <= 0) {
            slider.unslider('animate:' + cols);
        } else {
            slider.unslider('prev');
        }
    }).on('click', '.next', function() {
        if (slider.data('unslider').current >= cols) {
            slider.unslider('animate:first');
        } else {
            slider.unslider('next');
        }
    });

    function autoSlider() {
        timer = setInterval(function() {
            if (slider.data('unslider').current >= cols) {
                slider.unslider('animate:first');
            } else {
                slider.unslider('next');
            }
        }, 2000);
    }

    if (isAuto) {
        autoSlider();
        $imgBrand.hover(function() {
            clearInterval(timer);
        }, function() {
            autoSlider();
        });
    }
};