Voce já viu em alguns sites uma apresentação de slides criado com javascript onde podemos ter controle total sobre ele, como avançar, pausar, ou parar os slide usando botões, pois vamos aprender como criar um agora, este tutorial vai ficar bem grande porque vai ser muito detalhado para que todos possam entender bem como o codigo foi feito, então paciencia pessoal.
Para podermos criar uma apresentação de slides em javascript, temos que primeiro criar os elementos HTML que iremos utilizar para o slideshow. Precisamos de uma imagem, quatro botões e duas divs:
<html>
<body onload="loadPics()">
<center>
<div id="pictureContainer" style="width:560px; filter:progid:DXImageTransform.Microsoft.Fade(duration=1.0,overlap=1.0)">
<img id="picture" name="picture" src="1.jpg" /></div><br />
<input id="prev" type="button" value="prev" onclick="prev()" />
<input id="next" type="button" value="next" onclick="next()" />
<input id="slideshow" type="button" value="slideshow" onclick="startSlide()" />
<input id="pause" type="button" value="pause" onclick="pause()" /><br />
<div id="number">Picture 1</div>
</center>
</body>
</html>
Vamos usar a tag img para exibir as imagens na apresentação. A imagem é acondicionada dentro de uma div, que tem um filtro de atributo CSS. Esse filtro irá criar o efeito de transição usando o DirectX. Temos também quatro botões para controlar a apresentação e outra div que vai exibir o texto (como o título da imagem).
Vamos passar para o script. Primeiro, vamos declarar algumas variáveis e fazer uma função que pré-carrega as fotos.
<script language="javascript" type="text/javascript">
<!--
var i=0;
var finished=false;
var paused=false;
var running=false;
function loadPics()
{
pic0=new Image();
pic0.src="1.jpg";
pic1=new Image();
pic1.src="2.jpg";
pic2=new Image();
pic2.src="3.jpg";
pic3=new Image();
pic3.src="4.jpg";
pict=new Array();
pict[0]=pic0.src;
pict[1]=pic1.src;
pict[2]=pic2.src;
pict[3]=pic3.src;
}
Esta função de pré-carrega as imagens e faz uma matriz com elas. Queremos que esta função a ser chamada quando carrega páginas, por isso o corpo tem a marca do evento: onload = "loadPics ()".
Agora, vamos escrever uma função para o botão Avançar. A imagem padrão é pict0 (1.jpg), então o que nós queremos é a imagem para exibir a imagem seguinte, quando clicar em Avançar, e para mostrar a primeira imagem se estamos no final da apresentação. Para esta função vamos usar a variável i, que é basicamente o quadro atual, e uma instrução IF ELSE.
function next()
{
finished=false;
if(iAvançar, ele verifica qual imagem é exibida no momento, se a imagem é outra senão a última, que será incrementado por 1, a próxima foto será exibida e as fotos ' nome será escrito em uma div. Se a última imagem foi exibida quando o botão foi clicado, me retornarei a 0, e a primeira imagem será exibida novamente.
function prev()
{
finished=false;
if (i>0)
{
i--;
document.getElementById('picture').src=pict[i];
document.getElementById('number').innerHTML="Picture "+1*(i+1);
}
else
{
i=pict.length-1;
document.getElementById('picture').src=pict[i];
document.getElementById('number').innerHTML="Picture "+1*(i+1);
}
}
function startSlide() { running=true; if(navigator.appVersion.indexOf("MSIE") == -1) { interval = setInterval(FFSlideshow,5000); } else { interval = setInterval(slideshow,5000); } document.getElementById("slideshow").disabled=true; document.getElementById('number').innerHTML="Picture "+1*(i+1); }
function slideshow()
{
if
function FFSlideshow()
{
if
function pause()
{
if(running==true)
{
if(paused==false)
{
paused=true;
document.getElementById("pause").value="resume";
clearInterval(interval);
document.getElementById('number').innerHTML="Paused";
}
else
{
startSlide()
paused=false;
document.getElementById("pause").value="pause";
}
}
}
E não se esqueça de fechar o script:
//-->
</script>
Para não deixar mais longo que já esta esse post, resolvi hospedar e deixar o link para que vocês possam baixar e ver como fica o código completo.
1 comentários:
Obrigada! Já fiz o download do código, e vou testar.
Compartilhar conhecimento: não tem preço!!
Abraços,
Serenissima
Postar um comentário