JQuery скорость прокрутки? - PullRequest
       23

JQuery скорость прокрутки?

0 голосов
/ 08 января 2011

это скрипт, который я получил из интернета, и он отлично работает, то, что он делает, он автоматически прокручивает при движении мыши, над div в этом случае scroll, но я не могу найти, где яможно найти скорость или сделать ее медленнее !!я так растерялся !!

$("#scroll").mousemove(function(e){
        /* The scrollable quote container */

        if(!this.hideDiv)
        {
            /* These variables are initialised only the firts time the function is run: */

            this.hideDiv = $(this);
            this.scrollDiv = $('#scroll');

            this.pos = this.hideDiv.offset();
            this.pos.top+=20;
            /* Adding a 20px offset, so that the scrolling begins 20px from the top */


            this.slideHeight = this.scrollDiv.height();

            this.height = this.hideDiv.height();
            this.height-=20;
            /* Adding a bottom offset */

            this.totScroll = this.slideHeight-this.height;
        }

        this.scrollDiv.css({
            /* Remember that this.scrollDiv is a jQuery object, as initilised above */

            marginTop:'-'+this.totScroll*(Math.max(e.pageY-this.pos.top,0)/this.height)+'px'
            /* Assigning a negative top margin according to the position of the mouse cursor, passed
               with e.pageY; It is relative to the page, so we substract the position of the scroll container */
        });

    });

1 Ответ

0 голосов
/ 08 января 2011

Код, кажется, просто устанавливает поле:

MarginTop: '-' + this.totScroll * (Math.max (e.pageY-this.pos.top, 0) /this.height) + 'точек'

То есть он не вызывает функцию jquery для прокрутки, которую можно легко анимировать. Чтобы достичь этого, вам придется переписать этот код, возможно, используя функцию jquery animate () с marginTop css.

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

...