2014-09-10 2 views
0

Я попытался сделать ползунок, чтобы двигаться влево-вправо в цикле, только первый div работает, он выходит и все останавливается.JQuery Слайд-шоу Слайд-эффект слева направо

вы можете увидеть рабочий пример here

$(document).ready(function() { 
    var delay = 3000, 
     fade = 1000; 
    var banners = $('.banner'); 
    var len = banners.length; 
    var i = 0; 
    setTimeout(cycle, delay); 

    function cycle() { 
     $(banners[i % len]).hide("slide", { 
      direction: "left" 
     }); 
     (fade, function() { 
      $(banners[++i % len]).show("slide", { 
       direction: "right" 
      }); 
      (fade, function() { 
       setTimeout(cycle, delay); 
      }); 
     }); 
    } 
}); 

Спасибо

+0

что использовать '(fade, function()', я думаю, что он никогда не называется – Kyojimaru

+0

fade - это временной интервал, прежде чем он переходит к следующей функции div. – Target

+0

Разве вы не видели сообщение «*» Ссылки на jsfiddle.net должен сопровождаться кодом. "* при публикации этого голосования, чтобы закрыть вопрос по той же причине. –

ответ

1

, возможно, это то, что вам нужно: Updated Fiddle

первый, этот код твой никогда не называют

(fade, function() { 
    $(banners[++i % len]).show("slide", { 
     direction: "right" 
    }); 
    (fade, function() { 
     setTimeout(cycle, delay); 
    }); 
}); 

это причина cycle функция будет только запустить один раз, так как вы используете setTimeout, поэтому в вашем случае, который нужно цикл снова и снова каждые x секунд, то лучше использовать setInterval, поэтому изменить

setTimeout(cycle, delay); 

в

setInterval(cycle, delay); 

то для функции cycle, измените код этого

function cycle() { 
    $(banners[i % len]).hide("slide", { 
     direction: "left" 
    }); 
    $(banners[++i % len]).show("slide", { 
     direction: "right" 
    }); 
} 

и это сделано, код ж плохо работать сейчас. Но поскольку .banner является div, который является block элементом, то .banner будет в 2 линии, когда второй div показал перед первым div является hidden, поэтому вам нужно добавить style

position: absolute; 

к .banner так это появится в той же строке

+0

Большое спасибо – Target

+0

@Kyojimaru Как я могу перемещать несколько DIV за раз? –

 Смежные вопросы

  • Нет связанных вопросов^_^