17. oktober 2007 - 15:22Der er
9 kommentarer og 1 løsning
Billede slide med tilhørende tekst
Hej,
Jeg har et slideshow script til billeder i javascript. Det skifter billede i et interval af x sekunder. Jeg vil dog gerne kunne knytte noget tekst til hvert billede, så denne tekst bliver vist ved siden af billedet.
<head> <script language="JavaScript" type="text/JavaScript"><!--> //declaring necessary local variables
var img = new Array(10); //array to hold the images var start = null; //start pointer var counter = 1; //counts the image sequences var delayTime = null; //user defined
if(document.images) { //pre-load all the images for(i = 1; i <= 10; i++) { img[i] = new Image(); img[i].src = "pic" + i + ".jpg"; } }
//function for getting the user defined delay time
function getDelayTime(dlTime) { var temp = parseInt(dlTime); if(temp != NaN) delayTime = temp * 1000; else delayTime = 1000; }
//function for changing the images function anim() { counter++; document.images[0].src = img[counter].src; if(counter == 10) counter = 0; //sets the counter value to 0 }
//function for starting the slide show function slide() { getDelayTime(document.form1.delay.value); with(document.form1) { start = setInterval("anim()", delayTime); stShow.disabled = true; spShow.disabled = false; }
}
//function to stop the slide show function stopSlide() { clearInterval(start); document.form1.stShow.disabled = false; document.form1.spShow.disabled = true; }
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg har skrevet din kode om og optimeret den og tilføjet billed- og tekst-arrays. Se om du kan bruge den: ----------------------------------------------------------- <div id="slideshow"></div>
<script type="text/javascript"> var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
var slideshow=document.getElementById("slideshow"); for(i=0;i<arrImg.length;i++){ slideshow.appendChild(document.createElement("div")); slideshow.lastChild.style.display=i==0?"inline":"none"; slideshow.lastChild.setAttribute("id",arrImg[i]); slideshow.lastChild.appendChild(document.createElement("img")); slideshow.lastChild.lastChild.setAttribute("src",arrImg[i]); slideshow.lastChild.appendChild(document.createElement("br")); slideshow.lastChild.appendChild(document.createTextNode(arrImgTxt[i])); } function ShowImg(i){ if(!document.getElementById("stopslideshow").checked){ document.getElementById(arrImg[i]).style.display="none"; i++;if(i==arrImg.length) i=0; document.getElementById(arrImg[i]).style.display="inline"; } setTimeout("ShowImg("+i+")",speed); } setTimeout("ShowImg(0)",speed); </script> ------------------------------------------------- Du skal så bare rette i: var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
Og du kan lave layout som du vil på: <div id="slideshow"></div> <label>Stop slideshow</label><input type="checkbox" id="stopslideshow">
Det ser super godt ud. Mange tak! 1)Jeg kunne dog godt ønske mig, at checkbox fuldstændig forsvandt, men skriver holder tilsyneladende op med at virke, når jeg fjerner den.
2)Derudover ville jeg gerne have teksten vist ved siden af billedet. Det opnår jeg let ved at fjerne <br>. Men det kunne være rart at teksten komme op omkring midten af billedet og ikke bare står nederst ved siden af. Hvordan tilføjer man en table?
Her er uden checkboksen: ------------------------------------------- <div id="slideshow"></div>
<script type="text/javascript"> var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
var slideshow=document.getElementById("slideshow"); for(i=0;i<arrImg.length;i++){ slideshow.appendChild(document.createElement("div")); slideshow.lastChild.style.display=i==0?"inline":"none"; slideshow.lastChild.setAttribute("id",arrImg[i]); slideshow.lastChild.appendChild(document.createElement("img")); slideshow.lastChild.lastChild.setAttribute("src",arrImg[i]); slideshow.lastChild.appendChild(document.createElement("br")); slideshow.lastChild.appendChild(document.createTextNode(arrImgTxt[i])); } function ShowImg(i){ document.getElementById(arrImg[i]).style.display="none"; i++;if(i==arrImg.length) i=0; document.getElementById(arrImg[i]).style.display="inline"; setTimeout("ShowImg("+i+")",speed); } setTimeout("ShowImg(0)",speed); </script> ---------------------------------------------------------------- Dette er uden tabel, da tabeller er lidt seje at arbejde med i DOM. Jeg kan dog godt prøve, men garanterer ikke, det virker: ---------------------------------------------------------------- <div id="slideshow"></div>
<script type="text/javascript"> var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
Den uden checkboks virker fint på min computer. Bevæger de sig slet ikke på din?
Tabeller virkede ikke nej, men det gør det med følgende kode: ------------------------------------------------------------- <html> <head></head> <body>
<div id="slideshow"></div>
<script type="text/javascript"> var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
</body> </html> ---------------------------------------------------------- Dog løser det ikke dit problem. Teksten vises stadig nederst i forhold til billedet. En valign="middle" løser ikke problemet. Det er bare sådan tekst vises i forhold til billeder.
Jeg har siddet og kigget på problemet ved valign i tables. Nu ahr jeg sat en border på, og det ser ud som om, der kun er en celle. Der skal vel være to: en hvor billedet er i, og en hvor teksten står i. På den måde kan teksten komme op på midten, ved siden af billedet. Er det noget du kan gøre?
Nå ja, det slog mig ikke lige. Sådan her måske (utestet): --------------------------------------------------------- <html> <head></head> <body>
<div id="slideshow"></div>
<script type="text/javascript"> var arrImg=new Array("/images/billede1.jpg","/andet/t1.bmp","/images/billede2.jpg"); var arrImgTxt=new Array("Ferie","Andet","Ferie igen"); var speed=2000;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.