Непрерывный вертикальный скроллер изображения - PullRequest
0 голосов
/ 29 марта 2012

Мне нужно настроить скрипт с http://javascript.about.com/library/blcvert.htm, чтобы изменить направление прокрутки на ВНИЗ.

Может ли кто-нибудь помочь?

Конечно, было бы также полезно, если бы кто-нибудь знал / имел какой-то другой скрипт, который производит тот же эффект.

Thanx

P.S. скрипт (в читаемом формате есть):


    var imgAry1 = ['img1.png','img2.png'];

    function startCloud() {
       new mq('clouds', imgAry1, 380);
       mqRotate(mqr);
    }

    $(document).ready(function() {
        startCloud();
    });

    var mqr = [];

    function mq(id, ary, heit) {
    this.mqo=document.getElementById(id);
    var wid = this.mqo.style.width;
    this.mqo.onmouseout=function() { mqRotate(mqr); };
    this.mqo.onmouseover=function() { clearTimeout(mqr[0].TO); };
    this.mqo.ary=[];
    var maxw = ary.length;
    for (var i=0;i<maxw;i++) {
        this.mqo.ary[i]=document.createElement('img');
        this.mqo.ary[i].src=ary[i];
        this.mqo.ary[i].style.position = 'absolute';
        this.mqo.ary[i].style.top = (heit*i)+'px';
        this.mqo.ary[i].style.height = heit+'px';
        this.mqo.ary[i].style.width = wid;
        this.mqo.appendChild(this.mqo.ary[i]);
    }
    mqr.push(this.mqo);
    }

    function mqRotate(mqr) {
    if (!mqr) return;
    for (var j=mqr.length - 1; j > -1; j--) {
        maxa = mqr[j].ary.length;
        for (var i=0;i<maxa;i++) {
            var x = mqr[j].ary[i].style;
            x.top=(parseInt(x.top,10)-1)+'px';
        }
        var y = mqr[j].ary[0].style;
        if (parseInt(y.top,10)+parseInt(y.height,10)<0) {
            var z = mqr[j].ary.shift();
            z.style.top = (parseInt(z.style.top) + parseInt(z.style.height)*maxa) + 'px';
            mqr[j].ary.push(z);
        }
    }
    mqr[0].TO=setTimeout('mqRotate(mqr)',10);
    }

1 Ответ

0 голосов
/ 29 марта 2012

На этой строке:

x.top=(parseInt(x.top,10)-1)+'px';

говорит, что вы берете x.top в пикселях, разбираете число, вычитаете единицу и снова добавляете 'px'. Позиция элемента сверху - уменьшается на 1 каждый раз, поэтому он увеличивается на вверх . Все, что вам нужно сделать для того, чтобы он опустился вниз , это добавьте один.

x.top=(parseInt(x.top,10)+1)+'px';

Я также проверил эту гипотезу на странице, на которую вы ссылались:)

...