Agregando conhecimento…
Continuando a seqüência de plugins para transição de imagens, apresento a vocês o plugin JQuery Cycle.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>JQuery Cycle Plugin - Effects Browser</title>
<style type="text/css">
body{ font-size:11px; font-family:Arial,Verdana; }
#choices { cursor: pointer; }
td { text-align: center; }
li { list-style: none; width:100px; float:left; }
li:hover{ text-decoration:underline; color:#0066CC; }
h1#effect { text-align: center; padding-bottom: 15px }
.pics { padding: none; width: 202px; height: 202px; margin:auto; }
.pics img { padding: none; width: 200px; height: 200px; border: 1px solid #ccc; }
</style>
<link rel="stylesheet" type="text/css" media="screen" href="cycle.css" />
<script type="text/javascript" src="http://www.shiguenori.com/jquery/jquery.js"></script>
<script type="text/javascript" src="jquery.easing.js"></script>
<script type="text/javascript" src="jquery.cycle.js?v2.23"></script>
<script type="text/javascript">
$('<img />')[0].src = 'images/beach1.jpg';
$('<img />')[0].src = 'images/beach2.jpg';
$('<img />')[0].src = 'images/beach3.jpg';
$(function() {
var efeito, cbox = $('input:checkbox').change(start)[0];
$('#choices li').click(function() {
// Usar a função trim do jquery porque nos IEs o nome do efeito vinha com espaço no final
efeito = jQuery.trim($(this).text());
start();
});
function start() {
var markup = '<div class="pics"><img src="images/beach1.jpg"><img src="images/beach2.jpg"><img src="images/beach3.jpg"></div>';
$('div.pics').remove();
$(markup).insertAfter('#effect').cycle({
fx: efeito,
timeout: 1000,
delay: -1000,
sync: cbox.checked
});
$('#effect').html(efeito);
}
});
</script>
</head>
<body>
<h1>Plugin jQuery Cycle - Navegador de efeitos</h1>
<div id="main">
<table width="100%">
<tr>
<td>
<ul id="choices">
<li>blindX</li>
<li>blindY</li>
<li>blindZ</li>
<li>cover</li>
<li>curtainX</li>
<li>curtainY</li>
<li>fade</li>
<li>fadeZoom</li>
<li>growX</li>
<li>growY</li>
<li>scrollUp</li>
<li>scrollDown</li>
<li>scrollLeft</li>
<li>scrollRight</li>
<li>scrollHorz</li>
<li>scrollVert</li>
<li>shuffle</li>
<li>slideX</li>
<li>slideY</li>
<li>toss</li>
<li>turnUp</li>
<li>turnDown</li>
<li>turnLeft</li>
<li>turnRight</li>
<li>uncover</li>
<li>wipe</li>
<li>zoom</li>
</ul>
</td>
</tr>
<tr>
<td><input id="marcar" type="checkbox" checked="checked" /> <label for="marcar">Marque esta opção para ver alguns efeitos com comportamento diferente</label></td>
</tr>
<tr>
<td><h3 id="effect">Clique em um efeito na lista a acima</h3></td>
</tr>
</table>
</div>
</body>
</html> |
Links:
jquery.js
jquery.cycle.js
Demonstração
Página para publicar e armazenar conteúdo relacionado a Desenvolvimento Web:
PHP, MySQL, Javascript, JQuery, CSS e as novas tecnologias do momento.
Façam comentários, perguntas e sugestões que ficarei satisfeito por recebê-los.
Shiguenori Junior
weslley
outubro 16th, 2009 at 11:30
putz cara posta o codigo de explo acima mais simples.. somesnte com a função utilizada e as fotos.. ta meio complicado dentender.. vlws
Junior
outubro 21st, 2009 at 16:54
Vou exemplificar usando a configuração mais simples do cycle:
O plugin funciona também com outros tipos de estruturas (HTML), por exemplo ao invés de imagens vcoê ter várias divs, cada uma com um tipo de apresentação. Só tenha cuidado de que cada div ocupe o mesmo espaço. Caso ainda tenha dúvidas, tente hospedar o seu código em algum servidor para que possamos lhe ajudar melhor.
Junior
dezembro 17th, 2009 at 9:57
Aqui o link com o uso múltiplo do cycle
http://www.shiguenori.com/material/jquery.cycle/exemplo/
A estrutura do HTML é a seguinte:
DIV
> IMG, IMG, IMG
DIV.mini
jefter
março 19th, 2010 at 16:18
Como vai? olha quando eu uso este exeemple simplificado a imagem não fica do tamanho que eu quero com deixo imagem do tamanho que vc posto ai no 1° exemplo
Junior
março 23rd, 2010 at 12:00
@jefter eu vou bem e vc? No primeiro exemplo vc troca as imagens, se elas tiverem tamanhos diferentes vc precisar retirar o css de .pics (“widht:202px; height: 202px;”), faça um teste prático, retire todo o css, o plugin funcionará sem ele. Se o problema não for resolvido assim, tente dessa outra forma: defina a largura e altura para o container e coloque overflow:hidden assim o que tiver sobrando não será exibido.
Qualquer coisa posta o código em algum lugar e passa o endereço que agente dá um jeito, até mais…
Nycolas Barrel
abril 5th, 2010 at 16:25
Olá Junior,
É rapaz, este cycle que você me mostrou, veio dos céus viu hehehe ….
Mas aqui, tem uma coisa que não consegui fazer de forma alguma, repare o código abaixo :
—————————————————————————-
<asp:Label ID="lblFabMod" runat="server" Text='’>
<asp:Image ID="imgFabMod" ImageUrl='’
AlternateText=” Height=”320px” Width=”580px”
runat=”server” />
—————————————————————————-
Estou fazendo a galeria, carregando por exemplo 3 imagens que vem do banco, e cada imagem possui um título que será exibido na label “lblFabMod”, porém Junior, essa label não aparece acima da imagem (como deveria olhando o codigo acima), ela gera um tipo de novo registro.
Para entender melhor meu problema, acesse o endereço e veja o problema :
http://carroinline.com/testeSlideCycle.aspx
novamente, mto obrigado desde já por toda ajuda,
Att,
Nycolas Barrel.
Junior
abril 14th, 2010 at 12:26
@Nycolas Barrel opa, desculpa não ter respondido antes, eu tava meio sumido aqui no blog, mas vamos lá. O plugin cycle funciona com imagens e conteúdo html, para todos os casos o plugin pega o primeiro grupo de elementos e faz o ciclo. Dessa forma que expliquei parece um pouco complicado, vou exemplificar: dentro de uma div com a classe ‘galeria’ (o seletor disto é $(‘.galeria’)…) existem várias imagens, o ciclo neste caso seriam as imagens, agora se dentro dessa div contiver outros elementos html estes não farão parte a menos que estejam englobados pelo elemento/grupo.
Resumindo, com CONTEÚDO HTML você precisa colocar dentro de um delimitador (pode ser div, span ou qualquer outra tag, mas eu sugiro estas para deixar o código semanticamente correto), dessa forma a estrutura para o seu caso ficaria algo como:
div.galeria div label img /div div label img /div div label img /div ...Lembre-se que vc precisa/pode controlar o CSS para o conteúdo de cada grupo dentro do painel. Qualquer coisa é só falar.
Laura
maio 14th, 2010 at 2:54
Boa noite..
Estou usando jquery.cycle…mas estou com um probleminha..
Ele não funciona direito no Explorer 8…
Será q vc pode dar uma forcinha…
Parabéns pelo site…muito bom…
Obrigada…
Junior
maio 14th, 2010 at 15:34
@Laura o que “não funciona direito” com o plugin? A transição não está do jeito que deveria? Este tipo de problema geralmente acontece por problemas no CSS. Hospede o seu exemplo em algum lugar e me passa o link que eu analiso melhor. Até mais.
Laura
maio 15th, 2010 at 2:50
Ok..vou hospedar e te passo o link…
Obrigada pela atenção…
Laura
maio 15th, 2010 at 20:31
Oi..Junior,não estava conseguindo entrar no site…
O link é este:
http://www.gessobelasartes.com/sancas.html
No Mozila ele funciona direitinho,mas no IE,ele não funciona direito…
Se vc puder me dar uma forcinha….
Tenho q entregar esse site na segunda..
Obrigada pela atenção..
Junior
maio 17th, 2010 at 18:20
@Laura desculpe me não ter visto seu comentário no final de semana, mas se ainda precisar da solução está aí:
Na TD onde as imagens ficam vc coloca a classe “td_cycle”.
OBS: Já ouviu falar em webstandards? Eu notei que vc “recortou” usando o Fireworks. Como desenvolvedor aconselho que aprenda Tableless, entre outras coisas. Qualquer coisa é só falar.
Laura
maio 17th, 2010 at 23:09
Oi..Junior…
Mas uma vez obrigada pela atenção…
Agora deu certo..só não consegui centralizar bem a imagem,mas tá ótimo…
Sobre aprendrer Tableless, já pesquisei alguns tutoriais.
Vou estudar…obrigado pela dica..
Tenho mesmo que me atualizar….
Obrigada pela atenção e pelo carinho q vc tem em resolver dúvidas…
Parabéns….
Junior
maio 20th, 2010 at 10:46
@Laura de nada, quanto a centralizar a imagem, vc já viu meu post “Centralizar divs vertical e horizontalmente”? Se não conseguir entender ou precisar de ajuda é só falar.
Laura
maio 20th, 2010 at 19:29
Junior…
Vou dar uma olhadinha no post…..
Brigadão mesmo pelo carinho…
Qualquer coisa..venho te encher de novo…
Márcio Ney
julho 19th, 2010 at 21:53
Olá Junior, preciso de sua ajuda !
Instalei o tema Modularity Lite 1.2( wordpress ) no site de minha esposa e este usa o jquery.cycle, a questão é que não consego fazer com que ele mostre mais de 5 imagens. Não sei onde modificar, na pasta que originalmente havia 5 imagens pré-definidas acresci mais 4 , mas ele não mostra as 9 imagens, mesmo que eu troque todas só apresenta as 5 imagens iniciais. Agradeço muitíssimo se puder me ajudar !
Grato, Márcio Ney
Junior
julho 21st, 2010 at 13:42
@Márcio Ney para adicionar mais itens no cycle é necessário utilizar o mesmo elemento dentro da repetição, no site do desenvolvedor ele está utilizando div (com as imagens dentro), mas você pode utilizar somente imagens se preferir; só tenha cuidado para não trocar a ID ou CLASSE do elemento que os engloba. Uma pergunta este tema não tem a opção para limitar a quantidade de fotos no admim?
Dhuankles Castro
julho 27th, 2010 at 9:46
muito boa a soluação.. parabens
Victor Pientka
setembro 30th, 2010 at 2:39
Cara, muito bom esse plugin, porém eu estou tendo um problema de compatibilidade no IE.
Será que poderia me dar uma mão?
Pode ver em: opticamundial.com.br – No Chrome ou Firefox ta tranquilo, estou tendo problema no IE pra variar, parece que não está conseguindo executar o plugin.
Muito obrigado pela atenção!
Abraços.
Victor Pientka
setembro 30th, 2010 at 2:47
Notei também que com o script ativo o meu scriptaculous não funciona :/
Victor Pientka
setembro 30th, 2010 at 3:23
Agora que aparentemente consegui fazer funcionar em todos os navegadores o cycle, o scriptaculous (que utilizo para rotacionar imagens do banner maior) não está funcionando. Será que há alguma incompatibilidade ou conflito com esses scripts?
obrigado!
Victor Pientka
setembro 30th, 2010 at 3:42
Você deve pensar: ESSE CARA É MTO CHATO! hauahuahua, mas acabei de descobrir o problema… se coloco o link pro jquery-1.4.2.min.js simplesmente os outros scripts param de funcionar. Creio que agora fique mais fácil de conseguir ajuda.
Muito obrigado mais uma vez!
Junior
outubro 5th, 2010 at 13:55
@Victor Pientka saudações e desculpe por não ter respondido antes. Primeiro não é aconselhado utilizar frameworks diferentes, eu acredito que deve haver algum plugin em prototype que faça a mesma coisa que o cycle, ou então fazer um (o que não é tão dificil com os frameworks). MAS se ainda assim quiser tentar utilize a função do jQuery.noConflict(); faça os testes, qualquer coisa te ajudo.
Gilmar
março 30th, 2011 at 9:56
Junior tudo bem? estou com um problema no Jquery semelhante ao da Laura, pois não funciona do Internet explorer minha transição. Já no chrome e mozilla ela vai mas fica carregando em um pequeno quatro antes. (talvez seja pq não defini o tamanho da div). Me ajuda ai por favor o link é esse do exemplo:http://www.tremedal.co.cc/index1.php
e a function :
$(function(){
$(“#banner ul”).cycle({
fx: ‘turnLeft’,
speed: 1000,
timeout: 9000,
pager: ‘#pager’,
})
})
Junior
abril 2nd, 2011 at 10:35
@Gilmar olá, primeiro tente veja se retirando a virgula após o pager funciona. Uma dica que você pode tentar é: coloque no CSS display none para os elementos dentro do cycle (a tag LI no seu caso). Assim que o plugin funcionar corretamente ele mostra os elementos.
Gilmar
abril 4th, 2011 at 9:42
Junior, vc é d+ velu mesmo bastou eu retirar a virgula e ficou beleza!!
Bruno
abril 19th, 2011 at 10:29
Junior, sou novo em desenvolvimento pra web, e estou usando o jquery cicle para slide de imagens. porém em uma das abas do site, a “chamada” do jquery está lenta e as imagens aparecem fora do div, no carregamento da página. a url é : http://unicreditopi.com.br/. na aba “ATENDIMENTO” ocorre o erro. O que posso fazer pra consertar? Obrigado
Junior
abril 27th, 2011 at 16:50
@Bruno vc pode corrigir isto das seguintes formas, coloque display:none para os elementos internos, no seu caso na tag A dos links das fotos. Se não houvesse link seria na tag IMG. Não se preocupe, o jQuery Cycle atribui display:block assim que for chamado a visualização deste elemento. Outra forma seria você fixar a lagura e altura do elemento e colocar overflow:hidden; assim a DIV ficaria com tamanho fixo e os elementos não vão ultrapassar ele.
Juliana Cavalcante
outubro 8th, 2011 at 15:17
Olá! muito útil o script, mas tem um probleminha só… no meu ele funciona mas para passar de uma img pra outra demora demais, tem como acelerar?
Alex
novembro 8th, 2011 at 0:00
como pegar o id da imagem ou do li atual para fazer um update em impressoes
Junior
janeiro 14th, 2012 at 22:12
@Juliana Cavalcante nas linhas 43 e 44 do código exemplo, “timeout: 1000″ e “delay: -1000″ você pode colocar o delay para 0, os valores são em milisegundos. Faça os testes para chegar na velocidade que quer
Bruno
fevereiro 1st, 2012 at 17:04
Olá, em primeiro lugar, parabéns pelo artigo! Muito bem explicado!
Bom, eu trabalho com esse plugin a algum tempo e me vi em uma situação difícil com o “pager”… Preciso fazer com que ele seja exibido na vertical, assim:
1
2
3
4
5
Porque, por padrão, ele é exibido sempre na horizontal: 1 2 3 4 5…
É possível exibir na vertical?
Abçs
Junior
fevereiro 10th, 2012 at 12:47
@Bruno você pode fazer isto usando apenas CSS. Se você perceber dentro do elemento que você configurou para a paginação (o seletor) são links normais, utilizando a tag <A>, você pode fazer o CSS baseado no seletor, por exemplo:
Você pode tratar o hover com CSS também
Junior
março 11th, 2012 at 19:41
@Alex vai de bandeja, adicione o código:
Troque onde está escrito ‘current’ para a sua classe. Eu utilizei isso no site da Acrissul na página inicial, as notícias principais
Emy Morais
março 25th, 2012 at 15:41
Nossa, muito obrigada, ajudou demais. Parabéns! Tenho com um problema no ie, estou usando imagens .png e quando as imagens sofrem a transição ficam com uma borda serrilhada preta, depois somem, mas não queria que elas aparecessem. Isso não acontece no Mozilla e Chrome….pode me ajudar?
Junior
abril 19th, 2012 at 17:21
@Emy Morais já tentou com CSSS simples? Utilize algo como #id_cycle img{ border:0px; } se a borda for de link tente #id_cycle{ outline:0px; }, talvez seja necessário colocar o “!important” antes dos “;”