Help - Search - Members - Calendar
Full Version: The Very Simply Way To Make A Image Slider By Javascript
Zymic Webmaster Forums > Web Design & Development > Client Side Scripting > JavaScript
o0DarkEvil0o
Hi all!
I found that is difficult to search a simple javascript code about scrolling image slide. You can find them on Internet but they often are long and complex or hidden from us to prevent edit.
I just found a simple way to resolve this. I hope it will help your editting easier to make it yours!
We need 2 div tag to make a slide. ChildDiv to store image array and ParentDiv to contain Child Div.

Note:
Image Array's Structure: [<Image's Link>, <Image's Width>, <URL to Go>]
Functions:
DoSlide(), Make Slide to run.
setmouse(param), set Slide play and pause when pointer over or out on images;
Dr_ImgArr(); Print image array to HTML;
getE(), getElementById();
DivWidth: Width of ParentDiv;
MoreImage: Num Of Image on a begin of Image Array, insert into the last of ChildDiv to continue the Slide;
....
If you have anymore comment, please reply here so that I can make it more perfect,
thank for all.
Demo: http://boy.us.com/Code/slide.php
Style
CODE
<style>
#ParentDiv
{
    margin: auto;
    width: 600px;
    overflow: hidden;
}

#ChildDiv
{
    width: 6000px;
    position:relative;
    cursor:pointer;
}
#ParentDiv img
{
float: left;
padding: 3px;
margin: 0px;
}
</style>


Javascript
CODE
&lt;script>
//Array Of Image, [URL, width of Image, LinkTo]
var t;
var StepTime=10;
var StepPixel=1;
var ImgPadding=3;
var ParentDivLen=600;
var Img=
[
["./images/slide/3_116.jpg", 104, "../gal/?gal=3&Type=image&ID=116"],
["./images/slide/4_250.jpg", 103, "../gal/?gal=4&Type=image&ID=250"],
["./images/slide/1_157.jpg", 107, "../gal/?gal=1&Type=image&ID=157"],
["./images/slide/2_120.jpg", 124, "../gal/?gal=2&Type=image&ID=120"],
["./images/slide/4_229.jpg", 116, "../gal/?gal=4&Type=image&ID=229"],
["./images/slide/3_173.jpg", 113, "../gal/?gal=3&Type=image&ID=173"],
["./images/slide/2_192.jpg", 110, "../gal/?gal=2&Type=image&ID=192"],
["./images/slide/4_111.jpg", 104, "../gal/?gal=4&Type=image&ID=111"],
["./images/slide/5_244.jpg", 106, "../gal/?gal=5&Type=image&ID=244"],
["./images/slide/5_279.jpg", 109, "../gal/?gal=5&Type=image&ID=279"],
["./images/slide/5_233.jpg", 102, "../gal/?gal=5&Type=image&ID=233"],
["./images/slide/5_256.jpg", 106, "../gal/?gal=5&Type=image&ID=256"],
["./images/slide/5_248.jpg", 111, "../gal/?gal=5&Type=image&ID=248"],
["./images/slide/3_143.jpg", 99, "../gal/?gal=3&Type=image&ID=143"],
["./images/slide/1_225.jpg", 103, "../gal/?gal=1&Type=image&ID=225"],
["./images/slide/4_103.jpg", 109, "../gal/?gal=4&Type=image&ID=103"],
["./images/slide/4_145.jpg", 118, "../gal/?gal=4&Type=image&ID=145"],
["./images/slide/5_263.jpg", 100, "../gal/?gal=5&Type=image&ID=263"],
["./images/slide/2_115.jpg", 102, "../gal/?gal=2&Type=image&ID=115"],
["./images/slide/4_140.jpg", 122, "../gal/?gal=4&Type=image&ID=140"],
["./images/slide/1_214.jpg", 112, "../gal/?gal=1&Type=image&ID=214"],
["./images/slide/3_142.jpg", 102, "../gal/?gal=3&Type=image&ID=142"],
["./images/slide/5_297.jpg", 99, "../gal/?gal=5&Type=image&ID=297"],
["./images/slide/4_168.jpg", 101, "../gal/?gal=4&Type=image&ID=168"],
["./images/slide/5_277.jpg", 111, "../gal/?gal=5&Type=image&ID=277"],
["./images/slide/5_296.jpg", 103, "../gal/?gal=5&Type=image&ID=296"],
["./images/slide/4_169.jpg", 109, "../gal/?gal=4&Type=image&ID=169"],
["./images/slide/4_244.jpg", 110, "../gal/?gal=4&Type=image&ID=244"],
["./images/slide/5_285.jpg", 112, "../gal/?gal=5&Type=image&ID=285"],
["./images/slide/3_100.jpg", 111, "../gal/?gal=3&Type=image&ID=100"],
["./images/slide/1_103.jpg", 111, "../gal/?gal=1&Type=image&ID=103"],
["./images/slide/1_119.jpg", 104, "../gal/?gal=1&Type=image&ID=119"],
["./images/slide/5_253.jpg", 107, "../gal/?gal=5&Type=image&ID=253"],
["./images/slide/4_183.jpg", 105, "../gal/?gal=4&Type=image&ID=183"],
["./images/slide/4_171.jpg", 111, "../gal/?gal=4&Type=image&ID=171"],
["./images/slide/2_147.jpg", 126, "../gal/?gal=2&Type=image&ID=147"],
["./images/slide/3_115.jpg", 116, "../gal/?gal=3&Type=image&ID=115"],
["./images/slide/5_310.jpg", 113, "../gal/?gal=5&Type=image&ID=310"],
["./images/slide/4_185.jpg", 109, "../gal/?gal=4&Type=image&ID=185"],
["./images/slide/3_159.jpg", 108, "../gal/?gal=3&Type=image&ID=159"],
["./images/slide/2_154.jpg", 125, "../gal/?gal=2&Type=image&ID=154"],
["./images/slide/5_314.jpg", 107, "../gal/?gal=5&Type=image&ID=314"],
["./images/slide/2_106.jpg", 100, "../gal/?gal=2&Type=image&ID=106"],
["./images/slide/4_123.jpg", 103, "../gal/?gal=4&Type=image&ID=123"],
];
var Pos=0;
var Len=Img.length;

var DivWidth=0;
var MoreImage=0;

function goURL(URLS)
{
    document.location.href=URLS;
}
for(i=0;i<Len;i++)
{
    DivWidth+=Img[i][1] + ImgPadding*2;
    if(MoreImage==0 && DivWidth>ParentDivLen)MoreImage=i;
}
function getE(id)
{
    return document.getElementById(id);
}

function Dr_Img(IMG)
{
    return '<img src="'+ IMG[0] + '" onclick="goURL(\'' + IMG[2] + '\')">';
}

function Dr_ImgArr()
{
    var str='';
    for(i=0;i<Len;i++) str += Dr_Img(Img[i]);
    for(i=0;i<MoreImage;i++)str += Dr_Img(Img[i]);
    document.write(str);
}

function DoSlide()
{
    if(Pos==0)Pos=-1;
    divtg=getE('ChildDiv');
    Pos-=StepPixel;
    if(Pos<-DivWidth)Pos=0;
    divtg.style.left=Pos +'px';
    t=setTimeout('DoSlide()',StepTime);
    
}

function SlideStop()
{
    clearTimeout(t);
}
function setmouse(id)
{
    if(id==1)
    {
        DoSlide();
    }
    else
    {
        SlideStop();
    }
}
</script>


HTML Body

CODE
<div id="ParentDiv">
    <div id="ChildDiv" onmouseout="setmouse(1);" onmouseover="setmouse(2);">

        &lt;script>
            Dr_ImgArr();
        </script>
    </div>
</div>
Jacob
Thanks for sharing this. One suggestion is to place more comments in your code for other users to know what is going on and where.

Jacob.
Magnus
Er... couldn't the HTML tag <marquee> do this?

It is deprecated, but seems better than using a ridiculous amount of javascript and divs to achieve the same effect.
bezz
I wrote a flash slider if anyone is interested
http://www.bezzmedia.com/swfspot/samples/f...der_with_Easing
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2012 Invision Power Services, Inc.