Как сделать так, чтобы ступенчатая карусель обернулась и остановилась на слайде № 1 - PullRequest
1 голос
/ 06 марта 2012

Итак, я использую этот пример динамической карусели и пытаюсь настроить javascript так, чтобы он один раз прокручивался, а затем начинался заново и останавливался на слайде № 1: вот сайт: http://www.dynamicdrive.com/dynamicindex4/stepcarousel.htm

У меня есть попытка изменить параметр autostep с true на false, но он либо зацикливается навсегда, либо останавливается на последнем.

Я пытался использовать: onslide: функция ()

но я не могу понять синтаксис, чтобы определить, как ползунок знает, что такое последний слайд.

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

1 Ответ

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

Ответ выложен здесь: http://www.dynamicdrive.com/forums/showthread.php?t=67842

но вот код:

<script type="text/javascript">

stepcarousel.setup({
    galleryid: 'mygallery', //id of carousel DIV
    beltclass: 'belt', //class of inner "belt" DIV containing all the panel DIVs
    panelclass: 'panel', //class of panel DIVs each holding content
    autostep: {enable:true, moveby:1, pause:3000},
    panelbehavior: {speed:500, wraparound:false, wrapbehavior:'slide', persist:false},
    defaultbuttons: {enable: true, moveby: 1, leftnav: ['10/leftnav.gif', -5, 80], rightnav: ['10/rightnav.gif', -20, 80]},
    statusvars: ['statusA', 'statusB', 'statusC'], //register 3 variables that contain current panel (start), current panel (last), and total panels
    contenttype: ['inline'], //content setting ['inline'] or ['ajax', 'path_to_external_file']
    **onslide: function(){
        var id = 'mygallery', car = stepcarousel.configholder[id];
        if(car.currentpanel == car.lastvisiblepanel && !car.hasstopped){ //if we're at the end
            setTimeout(function(){stepcarousel.stepTo(id, 1);}, car.autostep.pause); //step one more time
            car.onslide = function(){}; //and stop checking
        }
    }**
})

</script>

Тогда вам также нужно изменить stepcarousel.js с:

stopautostep:function(config){
        clearTimeout(config.steptimer)
    },

до:

stopautostep:function(config){
    clearTimeout(config.steptimer);
    config.hasstopped = true;
},

Не могу поблагодарить Джона за помощь в этом, надеюсь, это поможет кому-то еще.

...