webForumDet fria alternativet

Byta href på bilder i en fotoslide

JavaScript

3 svar · 1 380 visningar · startad av Jaixe

Medlem sedan juni 20112 inlägg
Frågan#1

Hej, jag har denna kod för en foto slide

<body> 

<a  href="url1"><img src="firstcar.gif" class="hej" name="slide" width="500" height="500" /></a>

<script>
<!--
var image1=new Image()
image1.src="Untitled.png"
var image2=new Image()
image2.src="Capture.png"
var image3=new Image()
image3.src="Capture1.png"
var image4=new Image()
image4.src="Capture2.png"
var image5=new Image()
image5.src="Capture3.png"

var step=1;
function slideit(){
if (!document.images)
return
document.images.slide.src=eval("image"+step+".src")
if (step<5)
step++
else
step=1
setTimeout("slideit()",4000)
}
slideit()
//-->
</script>
</body>

och jag vill ha en kod som byter ut "url1" när jag byter bild
images1 = url1
images2 = url2
och så vidare

någon som kan hjälpa mig med detta?

Medlem sedan juni 2006261 inlägg
#2

Om du vill göra det lättare så finns det en massa jquery plugins som sköter en snygg slide åt dig, kolla cycle plugin för exempel, den är kanon och har många snygga och bra funktioner.

http://jquery.malsup.com/cycle/

Medlem sedan juni 20019 519 inlägg
#3

Jag hade skrivit om koden: Ha en array av objekt med url och bild-url:en

wrappat ditt a-element med en div(som är ett block element eller ett annat inline-element om det krävs för dig). och kollat längden på objektet istället för att hårdkoda 5, bli enklare för dig om du bestämmer dig att lägga in fler bilder i din snurra.

Och plocka bort eval!

//Private
(function() {

    var objects = [
            { url: "http://test.com", image: "http://placekitten.com/200/140"},
            { url: "http://test1.com", image: "http://placekitten.com/g/200/140"},
            { url: "http://test2.com", image: "http://placehold.it/200x140"}
        ],
        images = [],
        step = 0,
        slide = document.getElementById("slide"),
        slideA = slide.getElementsByTagName("a")[0], //Find first a-tag inside #slide-tag
        slideImg = slide.getElementsByTagName("img")[0], //Find the first img-tag inside the #slide-tag
        slideIt = function () {

            slideA.href = objects[step].url;
            slideImg.src = objects[step].image;

            step = step < objects.length-1 ? ++step : 0;

            setTimeout(slideIt,4000)

        };

    //Pre-load images
    for (var i = 0, l=objects.length;i<l;i++) {
        var image = new Image();
        image.src = objects[i].image;
        images.push(image);
    }

    slideIt();

})();

demo: http://voigt.se/sandbox/wf/Jaixe/

Medlem sedan juni 20112 inlägg
#4

Tack!

Tack för hjälpen!

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)