Avatar billede aquix Nybegynder
01. juli 2005 - 21:22 Der er 6 kommentarer og
1 løsning

Slideover effect med tilhørende hyperlink

Jeg har et javascript som automatisk fader mellem en liste af billeder... det jeg så gerne vil nu, er at jeg vil have hvert enkelt billede, til at repræsentere et hyperlink :) HVORDAN?! :D

Koden ser ud som følger:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- <!-- Begin
// Indstil hastigheden (millisekunder)
var slideShowSpeed = 7000;
// Lad følgende linie forblive som den er
var crossFadeDuration = 2;
// Billede-filerne
var Pic = new Array();
// For at tilføje flere, fortsæt da bare på samme måde
Pic[0] = 'pic_1.jpg'
Pic[1] = 'pic_2.jpg'
Pic[2] = 'pic_3.jpg'
Pic[3] = 'pic_4.jpg'
Pic[4] = 'pic_5.jpg'
Pic[5] = 'pic_6.jpg'



// Lad være med at ændre noget under denne linie
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}
function runSlideShow() {
if (document.all) {
document.images.SlideShow.style.filter="blendTrans(duration=2)";
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
document.images.SlideShow.filters.blendTrans.Apply();
}
document.images.SlideShow.src = preLoad[j].src;
if (document.all) {
document.images.SlideShow.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('runSlideShow()', slideShowSpeed);
}
// Her kan du begynde at ændre igen
-->
</script>
</head>
<body onLoad="runSlideShow()">
<img src="pic_1.JPG" name="SlideShow">
</body>
</html>


Håber I kan hjælpe ;D
Avatar billede softspot Forsker
01. juli 2005 - 21:29 #1
Vil det mon fungere hvis du smider et anchor omkring billedet og sætter dette anchor's href samtidig som billedet...?


<body onLoad="runSlideShow()">
<a href="" id="slideLink"><img src="pic_1.JPG" name="SlideShow"></a>
</body>

Du kunne så lægge links i et tilsvarende array som du slog op i på samme måde som for billedenavnene. Alternativt lave et 2-dimensionelt array hvor billedenavn og link ligger sammen...
Avatar billede aquix Nybegynder
01. juli 2005 - 21:32 #2
Ehm, må indrømme jeg er lost her :D jeg gør mig mest inden for grafik, og er ikke god til at programmere, så det er lidt tåget for mig det der :D Det skal siges at scriptet ikke er lavet af mig selv :P
Avatar billede softspot Forsker
01. juli 2005 - 21:39 #3
Fair nok :)

Jeg har lige prøvet at tilrette scriptet:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- <!-- Begin
// Indstil hastigheden (millisekunder)
var slideShowSpeed = 7000;
// Lad følgende linie forblive som den er
var crossFadeDuration = 2;
// Billede-filerne
var Pic = new Array();
// For at tilføje flere, fortsæt da bare på samme måde
Pic[0] = 'pic_1.jpg'
Pic[1] = 'pic_2.jpg'
Pic[2] = 'pic_3.jpg'
Pic[3] = 'pic_4.jpg'
Pic[4] = 'pic_5.jpg'
Pic[5] = 'pic_6.jpg'

Links[0] = 'link1.htm';
Links[1] = 'link2.htm';
Links[2] = 'link3.htm';
Links[3] = 'link4.htm';
Links[4] = 'link5.htm';
Links[5] = 'link6.htm';

// Lad være med at ændre noget under denne linie
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}
function runSlideShow() {
if (document.all) {
document.images.SlideShow.style.filter="blendTrans(duration=2)";
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
document.images.SlideShow.filters.blendTrans.Apply();
}
document.images.SlideShow.src = preLoad[j].src;
document.getElementById("slideLink").href = Links[j];
if (document.all) {
document.images.SlideShow.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('runSlideShow()', slideShowSpeed);
}
// Her kan du begynde at ændre igen
-->
</script>
</head>
<body onLoad="runSlideShow()">
<a href="link1.htm" id="slideLink"><img src="pic_1.JPG" name="SlideShow" border="0"></a>
</body>
</html>
Avatar billede aquix Nybegynder
01. juli 2005 - 22:15 #4
Nu fungere det rigtig nok som et link... MEN, nu skifter den ikke mellem billederne :/
Avatar billede softspot Forsker
01. juli 2005 - 22:28 #5
Det er da spøjst. Så prøv lige dette kode i stedet:

<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- <!-- Begin
// Indstil hastigheden (millisekunder)
var slideShowSpeed = 7000;
// Lad følgende linie forblive som den er
var crossFadeDuration = 2;
// Billede-filerne
var Pic = new Array();
// For at tilføje flere, fortsæt da bare på samme måde
Pic[0] = 'pic_1.jpg'
Pic[1] = 'pic_2.jpg'
Pic[2] = 'pic_3.jpg'
Pic[3] = 'pic_4.jpg'
Pic[4] = 'pic_5.jpg'
Pic[5] = 'pic_6.jpg'

var Lnks = new Array();
Lnks[0] = 'link1.htm';
Lnks[1] = 'link2.htm';
Lnks[2] = 'link3.htm';
Lnks[3] = 'link4.htm';
Lnks[4] = 'link5.htm';
Lnks[5] = 'link6.htm';

// Lad være med at ændre noget under denne linie
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
preLoad[i].lnk = Lnks[i];
}
function runSlideShow() {
  if (document.all) {
    document.images.SlideShow.style.filter="blendTrans(duration=2)";
    document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
    document.images.SlideShow.filters.blendTrans.Apply();
  }
  document.images.SlideShow.src = preLoad[j].src;
  document.getElementById("slideLink").href = preLoad[j].lnk;
  if (document.all) {
    document.images.SlideShow.filters.blendTrans.Play();
  }
  j = j + 1;
  if (j > (p - 1)) j = 0;
    t = setTimeout('runSlideShow()', slideShowSpeed);
}
// Her kan du begynde at ændre igen
-->
</script>
</head>
<body onLoad="runSlideShow()">
  <a href="link1.htm" id="slideLink">
    <img src="pic_1.JPG" name="SlideShow" border="0"></a>
</body>
</html>
Avatar billede aquix Nybegynder
01. juli 2005 - 22:33 #6
det ser sørme ud til at virke :D MANGE MANGE TAK :D
Avatar billede softspot Forsker
01. juli 2005 - 22:36 #7
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester