Após Contar Elementos Filhos, Mostrar De 3 Em 3
#1
Posted 04/02/2010, 09:40
Estou com outro pepino que estou tentando aprender, fiz do meu jeito, mas o cálculo saía sempre falho... não sei pq...
Tenho uma lista, vamos supor que, com 20 itens.
Quero mostrar de 3 em 3 em intervalos de 8 segundos, com fade entre eles... porém quando fiz o calculo para fazer de 3 em 3, ele fazia os 3 primeiros, e depois melava tudo... pulava 2, fazia 1, pulava 2 fazia 1, muito estranho... então estou pedindo arrego de novo
[codebox] <script>
var count = 0;
$(function(){
$(".listaTexto li").each(function(){
$(".listaTexto li:eq("+ count +"):visible").css("display","none");
count ++;
});
});
</script>
[/codebox]
acho q isso não está certo, mas é aonde eu parei...
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#2
Posted 04/02/2010, 11:59
[codebox]
$(document).ready(
function(){
var intervalID = window.setInterval(//pode-se entender o interval como um loop que executada cada iteração a x segundos. recebe 2 parametos (funcao,intervalo_em_ms)
function(){ // pode-se entender o interval como um loop que executada um função cada iteração a x segundos.
alert('teste');
},
8000);// 8 segundos, ou 8000 milesegundos
var timeoutID = window.setTimeout( //o timeout executa a função depois do milisegundos definidos,
function(){ // no caso, esta função vai ser executada depois de 8 segundos
alert('teste');
},
8000);// 8 segundos, ou 8000 milesegundos
/*
tanto o setTimeout quando o setInterval retornam um ID, que serve para identifica-los
esse identificador serve para para o setInterval ou cancelar um setTimeout com a funçaõ window.clearInterval
vou usar um setTimeout para cancelar o setInterval depois de 32 segundos
*/
var timeoutID2 = window.setTimeout(
function(){
window.clearInterval(intervalID);
},
32000);
/*sobre dar um fade nos seus slides
dentro algumas opções eu escolhi essa.
você seleciona todos os slides primeiro e um contador e uma pra guardar quantos slides nós temos.
*/
var $slides = $('.listaTexto li');
var countSlides = 0;
var sizeSlides = $slides.size();
var slidesIntervalID = window.setInterval(
function(){
if(countSlides+3>sizeSlides)
countSlides = 0;
var $pieces = $slides.slice(countSlides,countSlides+3);
$slide.hide('slow', function(){
$pieces.show('slow');
countSlides = countSlides+3;
});
},
8000
);
});
[/codebox]
Attached Files
Edição feita por: Édipo Costa Rebouças, 04/02/2010, 12:03.
#3
Posted 04/02/2010, 14:08
Só que o contador está sempre zerando! Engraçado que eu dou um alert de onde está o count e ele está somando certinho! e está sempre começando com a lista cheia...
[codebox]<script type="text/javascript" src="http://ajax.googleap...n.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var slides = $('.listaTexto li');
var countSlides = 0;
var sizeSlides = slides.size();
var slidesIntervalID = window.setInterval(
function(){
if(countSlides +3 > sizeSlides){
countSlides = 0;
}else{
alert("Caiu no else");
}
var pieces = slides.slice(countSlides,countSlides+3);
slides.hide('slow', function(){
pieces.show('slow');
countSlides = countSlides+3;
});
},2000);
});
</script>
<ul class="listaTexto">
<li>Teste 1</li>
<li>Teste 2</li>
<li>Teste 3</li>
<li>Teste 4</li>
<li>Teste 5</li>
<li>Teste 6</li>
<li>Teste 7</li>
<li>Teste 8</li>
<li>Teste 9</li>
</ul>
[/codebox]
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#4
Posted 04/02/2010, 22:05
<script type="text/javascript"> $(document).ready(function(){ var slides = $('.listaTexto li'); var countSlides = 0; var sizeSlides = slides.size(); var slidesIntervalID = window.setInterval( function(){ if((countSlides +3) > sizeSlides){ countSlides = 0; }else{ } var pieces = slides.slice(countSlides,countSlides+3); slides.hide('fast'); pieces.show(); countSlides = countSlides+3; },2000); }); </script>
pronto, o problema esta em incrementar o contar dentro do callback do show, pois o JQuery vai fazer um each nós elementos e executar a função do callback para todos os elementos então seja, como eu tinha três elementos no pieces, ele somava até nove e quando chamava a função denovo zerava.
#5
Posted 05/02/2010, 09:52
[codebox] $(document).ready(function(){
var slides = $('.listaTexto li');
var countSlides = 0;
var sizeSlides = slides.size();
var slidesIntervalID = window.setInterval(
function(){
if((countSlides +3) > sizeSlides){
countSlides = 0;
}
var pieces = slides.slice(countSlides,countSlides+3);
slides.hide('fast');
pieces.show();
countSlides = countSlides+3;
},3000);
});
[/codebox]
Mas agora a dúvida... ele sempre está abrindo a página com todos abertos... não deveria abrir os 3 primeiros, já que está tudo dentro do document.ready?
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#6
Posted 05/02/2010, 10:05
#7
Posted 05/02/2010, 10:19
tem alguma forma de fazer com que o script seja executado da forma que falei? Pois senão, na hora de listar o que preciso, a primeira vez vai quebrar o layout
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#8
Posted 05/02/2010, 10:47
#9
Posted 05/02/2010, 12:41
slides.hide('fast');
var countSlides = +3;
var sizeSlides = slides.size();
var slidesIntervalID = window.setInterval(
function(){
if((countSlides +3) > sizeSlides){
countSlides = 0;
}
var pieces = slides.slice(countSlides,countSlides+3);
slides.hide('fast');
pieces.show();
countSlides = countSlides+3;
},5000);
});
_linenums:0'>$(document).ready(function(){ var slides = $('.listaTexto li');<strong class='bbc'> slides.hide('fast'); var countSlides = +3;</strong> var sizeSlides = slides.size(); var slidesIntervalID = window.setInterval( function(){ if((countSlides +3) > sizeSlides){ countSlides = 0; } var pieces = slides.slice(countSlides,countSlides+3); slides.hide('fast'); pieces.show(); countSlides = countSlides+3; },5000); });
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#10
Posted 08/02/2010, 08:18
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#11
Posted 08/02/2010, 12:02
alguem?
é pra vocÊ dar um hide do quarto em diante, não em todos.
#12
Posted 12/02/2010, 08:43
[codebox] $(document).ready(function(){
var slides = $('.listaTexto li');
var countSlides = +3;
var sizeSlides = slides.size();
$('.listaTexto li:gt(2)').hide('fast');
var slidesIntervalID = window.setInterval(
function(){
if((countSlides +3) > sizeSlides){
countSlides = 0;
}
var pieces = slides.slice(countSlides,countSlides+3);
slides.hide('fast');
pieces.show();
countSlides = countSlides+3;
},5000);
});
[/codebox]
Se este post lhe ajudou, ajude o fórum também. Use a reputação de mensagens!
#13
Posted 01/10/2017, 09:01
#15
Posted 06/10/2017, 12:56
Fluoxetine Bioxetin buy viagra online Mail Order Medications From Canada
Vantin viagra Liquid Dramamine Xenical En Suisse Cialis For Daily Use
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)