@skdon

Почему первый раз не вычисляется height JS?

Есть слайдер. Пример странички tommy.1gb.ru/leather
Подскажите, пожалуйста, почему при уменьшении ширины экрана, не высчивается с первого раза высота расположения стрелочек. Т.е. стрелки листания при загрузке страницы расположены выше, чем должны. Если немного ресайзить окно, то они становятся на место. Выполняется кусок
jQuery(window).on("resize", function(event) {
                    methods.setResponsiveEvents();
                    var innerWidth = jQuery(listParent).width();
                    var innerHeight = jQuery(listParent).height();

Все просчитывается и становится на свои места.
Подскажите, почему при большой ширине окна все нормально, а при маленькой такая бяка...
При инициализации, вижу вызывается onresize
Public Methods
        *******************************/
        var methods = {
            init : function() {
                return this.each(function() {
                    methods.appendHTML();
                    methods.setEventHandlers();
                    methods.initializeItems();
                });
            },

            /******************************
            Initialize Items
            Fully initialize everything. Plugin is loaded and ready after finishing execution
	    *******************************/
            initializeItems : function() {

                var listParent = object.parent();
                var innerHeight = listParent.height();
                var childSet = object.children();
                methods.sortResponsiveObject(settings.responsiveBreakpoints);

                var innerWidth = listParent.width(); // Set widths
                itemsWidth = (innerWidth) / itemsVisible;
                childSet.width(itemsWidth);
                if (settings.clone) {
                    childSet.last().insertBefore(childSet.first());
                    childSet.last().insertBefore(childSet.first());
                    object.css({
                        'left' : -itemsWidth
                    });
                }

                object.fadeIn();
                jQuery(window).trigger("resize"); // needed to position arrows correctly

            },

Прошу сильно не пинать т.к. в JS не силен )
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 2
alsopub
@alsopub
Добавьте alert(listParent) в "onresize" чтобы удостовериться что эта переменная есть на момент ресайза.
Ответ написан
@0348raven
Проще сделать абсолютное позиционирование с помощью CSS и все встанет как необходимо

.nbs-flexisel-container {
    height: 180px;
}

.nbs-flexisel-nav-left, .nbs-flexisel-nav-right {
    position: absolute;
    top: 50%;
    margin-top: -15px;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы