Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelo2605

Jquery Cycle: fadeIn na primeira foto

Recommended Posts

É possível?

 

$(function() {
   $('#slideshow').cycle({
       fx:       'fade',
	speed:     900,
       timeout:   6000,
	pause: true,
	next:   '#next , #slideshow', 
   	prev:   '#prev',         
	after:     function(curr,next,opts) {
          var index=opts.currSlide;
           $('#caption p:visible').hide();
           $('#caption p').eq(index).show();
	   var contador = (opts.currSlide + 1) + ' - ' + opts.slideCount;
		$('#contador').html(contador);

}

   });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. pensei nisso aqui:

 

$(function() {
   $('#slideshow li').eq( 0 ).hide().fadeIn();
   $('#slideshow').cycle({
      //..

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

putz.. ai você vai ter q esperar o evento onload da imagem.

 

ou disparar no evento .load do objeto window. Pois esse evento acontece qnto todas as imagens já estão carregadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.. em vez de disparar no document.ready(), dispare no window.onload conforme eu disse..

 

o .load do window, vai esperar todas as imagens carregarem. Ai você faz o fade que eu disse, na primeira imagem, e dispara o slideshow também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK, vou tentar.

 

William, fiz o seguinte:

 

$(window).load(function() {
$(function() {
$('#slideshow li').eq( 0 ).hide().fadeIn(900);
   $('#slideshow').cycle({
       fx:       'fade',
	speed:     900,
       timeout:   6000,
	pause: true,
	next:   '#next , #slideshow', 
   	prev:   '#prev',         
	after:     function(curr,next,opts) {
          var index=opts.currSlide;
           $('#caption p:visible').hide();
           $('#caption p').eq(index).show();
	   var contador = (opts.currSlide + 1) + ' - ' + opts.slideCount;
		$('#contador').html(contador);

}

   });
});});

 

Mas na hora que a página carrega, as imagens do slideshow aparecem abaixo da primeira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai você deve ajustar com css, usando um overflow:hidden; para não ter essa quebra ai.

 

no caso:

$(window).load(function() {
$(function() {

não faz sentido.

 

 

tire o $(function() { dai.

 

 

 

 

ps:

$(function(){ === $(document).ready(function(){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal. Esse problema foi resolvido. Agora quando a página carrega, a primeira imagem aparece automaticamente e depois reaparece com um fade.

 

Como eu coloquei:

 

	$('#slideshow li').eq( 0 ).hide().fadeIn(900);

 

Ela não deveria desaparecer?

Compartilhar este post


Link para o post
Compartilhar em outros sites
primeira imagem aparece automaticamente e depois reaparece com um fade.
ta.. então faça assim:

 

 

$(document).ready(function(){
   $('#slideshow li').eq( 0 ).hide();
});
$(window).load(function(){
   $('#slideshow li').eq( 0 ).fadeIn(900);

   //restante do código
});

 

 

acho q isso resolve, se é que eu entendi oq você quer fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ele pula a primeira e aparece a segunda. Depois volta a primeira com o fade. Pode ser alguma coisa no css?

 

#slideshow{
   width:720px;
   height:490px;
position:absolute;
top:86px;
overflow:hidden;
}

#slideshow li {
width: 100%;
}

#slideshow li img{
margin:0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o comportamento esperado era esse mesmo..

 

ai agora você precisa definir oq deve acontecer.. hehe..

 

e ai ? logo de cara, não mostra nada ? como será ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia era fazer o fade com a primeira imagem (não só com as seguintes). Mas com o último código, a página carrega com a segunda imagem na tela. Depois ela some e retorna a primeira imagem com o fade. Talvez se colocássemos uma imagem "carregando" antes de carregar a primeira imagem

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia era fazer o fade com a primeira imagem

então, mas para isso, precisa ter algo atras entendeu ?

 

 

Talvez se colocássemos uma imagem "carregando" antes de carregar a primeira imagem

fica bacana.. q tal ?

 

-> esconda todo o slideshow no document.ready.

-> coloque o carregando

-> faça o fade da primeira imagem no window.load

-> mostre todo o slideshow

 

 

ai você precisa ir ajustando essa mecânica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa! pensei num algoritmo mais simples!

 

você joga uma imagem grande por cima com o loading.

e qndo tiver o window.load você esconde essa imagem.

 

Pronto. Pode até esconder ela com fade... ai não precisa do primeiro malabarismo q falei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode sim.. mas tudo depende doq você consegue fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei isso:

 

$('#slideshowB li').css('display' , 'hidden');
$(window).load(function() {
$('#slideshowB li').eq( 0 ).hide().fadeIn(900);
   $('#slideshowB').cycle({
	fx: 'fade'
	});
});


 

Todas as imagens são carregadas antes de iniciar o slideshow. mas o problema é que a primeira linha não está funcionando. As imagens aparecem.

Compartilhar este post


Link para o post
Compartilhar em outros sites
$('#slideshowB li').css('display' , 'none');

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.