Диалог Javascript запрограммирован на перемещение при прокрутке страницы, но он мигает.Это можно исправить? - PullRequest
0 голосов
/ 27 июня 2011

Я написал некоторый код jQuery для отображения окна с данными в углу веб-браузера пользователя.Я использую событие .scroll, чтобы окно оставалось в углу, когда пользователь прокручивает страницу вверх и вниз.Позвольте мне подчеркнуть, что Я не использую диалоговое окно jquery-ui .

Единственная проблема заключается в том, что окно мигает при прокрутке страницы.Боюсь, что кросс-браузерного решения этой проблемы не будет, так как разные браузеры ведут себя по-разному при прокрутке.Если бы не кросс-браузерное решение, было бы неплохо решение IE (мое веб-приложение предназначено для использования определенной группой из примерно 100 пользователей в моей организации.)

Вот фрагменты относительного кода:

ExternalScroll: function () {
            LittleBlackBook.setPosition();
        }

    setPosition: function () {
        var scrollPosition = $(self).scrollTop();
        var cssTop = LittleBlackBookStatic.determineCssTop(this.height, this.isTop, this.vOffset, scrollPosition);
        var cssHeight = LittleBlackBookStatic.determineCssHeight(this.height);
        var cssLeft = LittleBlackBookStatic.determineCssLeft(this.width, this.isLeft, this.hOffset);
        var cssWidth = LittleBlackBookStatic.determineCssWidth(this.width);
        this.jQueryObj.css('top', cssTop);
        this.jQueryObj.css('height', cssHeight);
        this.jQueryObj.css('left', cssLeft);
        this.jQueryObj.css('width', cssWidth);
    }

var LittleBlackBookStatic = {
    determineCssTop: function (height, isTop, vOffset, vScroll) {
        var windowHeight = $(self).height();
        var scrollPosition = $(self).scrollTop();
        var newModalTop = isTop ? vOffset + vScroll : windowHeight - height + vScroll - vOffset;
        return newModalTop + 'px';
    },

    determineCssHeight: function (height) {
        return height + 'px';
    },

    determineCssLeft: function (width, isLeft, hOffset) {
        var windowWidth = $(self).width();
        var newModalLeft = isLeft ? hOffset : windowWidth - width - hOffset;
        return newModalLeft + 'px';
    },

    determineCssWidth: function (width) {
        return width + 'px';
    }
} // end LittleBlackBookStatic

Я использую jQuery для поиска позиции прокрутки при прокрутке страницы и изменения CSS.

Есть ли лучший способ;способ сделать это прокручивать без мерцания?Если нет, то почему бы и нет?

1 Ответ

2 голосов
/ 27 июня 2011

Вы должны использовать fixed позиционирование для этого блока вместо того, чтобы анимировать его, чтобы держать его в углу.

Вы будете использовать меньше JavaScript и избегать мерцания, которое сопровождает анимация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...