Avatar billede webbe Nybegynder
08. maj 2006 - 09:06 Der er 75 kommentarer og
1 løsning

Billede-rotator

Hej eksperter

Jeg har brug for et script der med et tidsinterval på fx. 3 sekunder skifter et billede til et andet.

Alle billederne ligger i samme mappe.

Der er tale om 7 billeder der skal skifte mellem de billeder der ligger i en mappe der hedder "uploaded", og antallet af billeder i mappen øges med tiden.

Håber der er nogen der kan hjælpe.
Avatar billede webstuff Nybegynder
08. maj 2006 - 12:33 #1
Hmm.. Hvis du må bruge PHP også kan du måske gøre noget i den her retning:
-------------------------
<html>
<head>
<script type="text/javascript">
function SwitchPics(){
var billeder = new Array();
<?
$mappe = opendir("DIN_MAPPE/"); //Her skriver du stien til mappen!!!
while($fil = readdir($mappe)){
  if($fil!="." && $fil!=".."){
      echo "billeder[".$i++."] = \"$fil\"";
  }
}
closedir($mappe);
?>
var tal = Math.floor(Math.random()*<=$i;?>+0);

document.getElementById("BigPic").src = billeder[tal];
window.setTimeout("SwitchPics", 3000);
}
</script>
</head>
<body onLoad="SwitchPics();">
<img src="STARTBILLEDE.png" id="BigPic">
</body>
</html>
----------------------------------------

Det er dog ikke testet - men du har noget at gå ud fra :-)
Avatar billede webbe Nybegynder
08. maj 2006 - 12:38 #2
serveren understøtter ikke PHP - desværre
Avatar billede webstuff Nybegynder
08. maj 2006 - 12:55 #3
Hmm.. ASP så?
Avatar billede webbe Nybegynder
08. maj 2006 - 12:57 #4
ja - ASP er fint
Avatar billede webstuff Nybegynder
08. maj 2006 - 13:07 #5
Hmm.. ASP er overhovedet ikke min stærke side - så enten må du vente på at der kommer en frem fra sin hule som kan oversætte mit php til asp - eller oprette et spørgsmål i asp kategorien...
Avatar billede webbe Nybegynder
08. maj 2006 - 13:12 #6
men det er vel egentlig kun et javascript (derfor i denne kategori) der skal til...eller hvad?
Avatar billede webstuff Nybegynder
08. maj 2006 - 13:40 #7
Ja - men PHP'en bliver brugt til at åbne mappen og hente alle filerne ud - ellers skal du selv sidde og skrive dem alle sammen ind i et array
Avatar billede webbe Nybegynder
08. maj 2006 - 13:45 #8
ok - så må jeg vente lidt
Avatar billede thesurfer Nybegynder
09. maj 2006 - 00:50 #9
<html>
<head>
<script type="text/javascript">
function SwitchPics(){
var billeder = new Array();
<%
dim fs,fo,x
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("c:\test") ' Her skriver du stien til mappen!!!

for each x in fo.files
  response.write "billeder[billeder.length] = '" + x.name + "';"
next

set fo=nothing
set fs=nothing
%>
var tal = Math.floor(Math.random()*<=$i;?>+0);

document.getElementById("BigPic").src = billeder[tal];
window.setTimeout("SwitchPics", 3000);
}
</script>
</head>
<body onLoad="SwitchPics();">
<img src="STARTBILLEDE.png" id="BigPic">
</body>
</html>
Avatar billede thesurfer Nybegynder
09. maj 2006 - 00:52 #10
Sådan må det være (har rettet random-linien):

<html>
<head>
<script type="text/javascript">
function SwitchPics(){
var billeder = new Array();
<%
dim fs,fo,x
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("c:\test") ' Her skriver du stien til mappen!!!

for each x in fo.files
  response.write "billeder[billeder.length] = '" + x.name + "';"
next

set fo=nothing
set fs=nothing
%>
var tal = Math.floor(Math.random() * billeder.length + 0);

document.getElementById("BigPic").src = billeder[tal];
window.setTimeout("SwitchPics", 3000);
}
</script>
</head>
<body onLoad="SwitchPics();">
<img src="STARTBILLEDE.png" id="BigPic">
</body>
</html>
Avatar billede webbe Nybegynder
09. maj 2006 - 08:31 #11
thesurfer:

Det ser umiddelbart ud som noget af det jeg søger, men så alligevel ikke.

Der er tale om 8 små billeder der skal loade på forsiden og derefter skal de skifte mellem de uploadede billeder med 3 sekunders interval.

Billederne er placeret i en vinkel med 4 i bunden og 3 opad.

Se her: http://www.gunnerkristensen.dk
Avatar billede thesurfer Nybegynder
09. maj 2006 - 09:36 #12
"Der er tale om 8 små billeder der skal loade på forsiden og derefter skal de skifte mellem de uploadede billeder med 3 sekunders interval."

Den forstod jeg ikke...

Jeg forstår dit spørgsmål som sådan her:
- Der er nogle billeder i en mappe
- De skal indlæses ind i JavaScript, fra ASP
- Billedet skifter til at andet billede, hvert 3. sekund

Det gør koden fra 09/05-2006 00:52:15.

Hvad er det du vil nu?
Avatar billede thesurfer Nybegynder
09. maj 2006 - 09:39 #13
Er det de 8 billeder (du har på forsiden) der skal skifte, eller har du nogle andre billeder?
Avatar billede webbe Nybegynder
09. maj 2006 - 09:41 #14
Det er de små billeder på forsiden der skal skifte - har forsøgt at bruge det script du postede, men det gav en fejl når jeg smed det op på serveren.

Der er pt. kun de 7 små billeder, men med tiden vil der komme flere til.
Avatar billede webbe Nybegynder
09. maj 2006 - 09:47 #15
Prøver at forklare igen.

Jeg har en mappe med pt. 7 billeder, der med tiden kommer til at indeholde flere billeder.

Det jeg gerne vil er, at der på forsiden loades 7 små billeder (tilfældigt udvalgte fra ovenstående mappe), der med 3 sekunders interval skifter mellem de billeder der nu måtte være i mappen (men altid minimum de 7 der ligger der nu).

Om det bliver læst ind i javascript via ASP eller blot er ren javascript er ikke afgørende.

Håber det hjalp.
Avatar billede roenving Novice
09. maj 2006 - 14:19 #16
Javascript (i klienten) kan bare ikke læse på serveren, så der skal du bruge noget serverside, f.eks. php eller asp (og der er det ligegyldigt om du bruger vbscript, cgi/perl eller f.eks. javascript !-)
Avatar billede webbe Nybegynder
09. maj 2006 - 15:58 #17
Jamen så er det jo et spørgsmål om et script der kan læse det ind i JavaScript via ASP på 7 billeder på én gang....

Men jeg kunne ikke få thesurfer's forslag til at fungere bare på ét billede.... ;0(
Avatar billede thesurfer Nybegynder
09. maj 2006 - 22:26 #18
Ok.. så er jeg med.

Min kode var baseret på det man kalder "banner-rotation": 1 banner, mange billeder

Det du vil have er mange "bannere" og mange billeder..

ASP koden er den samme.. den henter samtligt billeder (filnavne) og smider dem ind i arrayen "billeder".

Den nye kode skal så lave et loop fra 0 til 6 (ialt 7), og i loopen skal den lave random, og sørge for, at samme tal IKKE bruges igen.

Billede 0 (f.eks. id="billede0") bliver så til den værdi i arrayen, man får fra random.

Jeg ser lige, om jeg kan nå at lave et eksempel i aften..
Avatar billede thesurfer Nybegynder
09. maj 2006 - 23:45 #19
Her er et fungerende eksempel:

1) Put dette script i mellem <head> og </head>:
<script type="text/JavaScript" language="JavaScript">
function SwitchPics()
{
    var billeder = new Array();
    <%
    dim fs,fo,x
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set fo=fs.GetFolder(server.mappath(".\billeder")) ' Her skriver du stien til mappen!!!
    for each x in fo.files
        response.write "billeder[billeder.length] = 'billeder/" + x.name + "';" & vbCrLf
    next
    set fo=nothing
    set fs=nothing
    %>
    var randomtal = "";
    var tal = "";
    var run = true;
    for(i=1; i < billeder.length + 1; i++)
    {
        run = true;
        do
        {
            tal = Math.floor(Math.random() * billeder.length + 0);
            if (randomtal.indexOf(tal + ",") == -1)
            {
                randomtal = randomtal + "" + tal + ",";
                run = false;
            }
        }

        while (run == true)
        document.getElementById("billede_" + i).src = billeder[tal];
    }
}
</script>

2) Ændre alle id="imgFront" på dine billeder, til class="imgFront"

3) Ændre #imgFront i din CSS fil, til .imgFront

4) Tilføj disse id'er til dine billeder: id="billedeX" (X er fra 1 og til 7)

5) Ændre <body> så det ser sådan ud: <body onload="SwitchPics()">

Nu skulle det gerne virke.

Jeg er sikker på, at scriptet kan forbedres.. :-)
Avatar billede roenving Novice
10. maj 2006 - 12:26 #20
Mon ikke vbscript-konkatenering skal bruges i asp-delen:

    for each x in fo.files
        response.write "billeder[billeder.length] = 'billeder/" & x.name & "';" & vbCrLf
    next
Avatar billede thesurfer Nybegynder
11. maj 2006 - 00:04 #21
roenving> Hehe.. det ville jeg også mene.. men ovenstående kode er taget fra et 100% fungerende eksempel.. :-)

Dvs, den accepterer "+" som "&".. mystisk, ja.. aner ikke hvorfor..
Avatar billede webbe Nybegynder
22. maj 2006 - 09:09 #22
Undskyld jeg ikke har reageret, men er lige kommet hjem fra New York.

Jeg har nu rettet scriptet til dette:

<script type="text/JavaScript" language="JavaScript">
            function SwitchPics()
            {
                var billeder = new Array();
                <%
                dim fs,fo,x
                set fs=Server.CreateObject("Scripting.FileSystemObject")
                set fo=fs.GetFolder(server.mappath(".\images\uploaded")) ' Her skriver du stien til mappen!!!
                for each x in fo.files
                    response.write "billeder[billeder.length] = 'images/uploaded/" + x.name + "';" & vbCrLf
                next
                set fo=nothing
                set fs=nothing
                %>
                var randomtal = "";
                var tal = "";
                var run = true;
                for(i=1; i < billeder.length + 1; i++)
                {
                    run = true;
                    do
                    {
                        tal = Math.floor(Math.random() * billeder.length + 0);
                        if (randomtal.indexOf(tal + ",") == -1)
                        {
                            randomtal = randomtal + "" + tal + ",";
                            run = false;
                        }
                    }
           
                    while (run == true)
                    document.getElementById("billede_" + i).src = billeder[tal];
                }
            }
            </script>

Har rettet min CSS og tilføjet id'er og ændret body, men det ser ikke ud til at de skifter.

Her er min kode hvor de skal vises:

<table border="0" cellpadding="0" cellspacing="0" width="560" height="300" id="table_txt">
                <tr>
                    <td colspan="6" rowspan="3"><img src="images/uploaded/<%=rsF("PPlanImg")%>" id="imgFront2" style="float:right" hspace="5" vspace="5" width="200"><b><%=rsF("PHeader")%></b><br/><br/><%=replace(rsF("PContent"),VbCrLf,"<br>")%></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img1.jpg" class="imgFront" id="billede1"></td>
                </tr>
                <tr>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img2.jpg" class="imgFront" id="billede2"></td>
                </tr>
                <tr>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img3.jpg" class="imgFront" id="billede3"></td>
                </tr>
                <tr>
                    <td width="100"></td>
                    <td width="100"></td>
                    <td width="60"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img4.jpg" class="imgFront" id="billede4"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img5.jpg" class="imgFront" id="billede5"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img6.jpg" class="imgFront" id="billede6"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img7.jpg" class="imgFront" id="billede7"></td>
                </tr>
            </table>

Har sikkert gjort et eller andet forkert.
Avatar billede roenving Novice
22. maj 2006 - 11:35 #23
Prøv at vise resultatet, der rammer browseren (Vis kilde !-)
Avatar billede webbe Nybegynder
22. maj 2006 - 12:14 #24
får dels fejlen:

document.getElementById(...) er null eller ikke et objekt

Vis kilde:

<html>
<head>
<title>Arkitektfirmaet Gunner Kristensen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>


<script type="text/JavaScript" language="JavaScript">
            function SwitchPics()
            {
                var billeder = new Array();
                billeder[billeder.length] = 'images/uploaded/fast.jpg';
billeder[billeder.length] = 'images/uploaded/gunner.jpg';
billeder[billeder.length] = 'images/uploaded/img.jpg';
billeder[billeder.length] = 'images/uploaded/img1.jpg';
billeder[billeder.length] = 'images/uploaded/img2.jpg';
billeder[billeder.length] = 'images/uploaded/img3.jpg';
billeder[billeder.length] = 'images/uploaded/img4.jpg';
billeder[billeder.length] = 'images/uploaded/img5.jpg';
billeder[billeder.length] = 'images/uploaded/img6.jpg';
billeder[billeder.length] = 'images/uploaded/img7.jpg';
billeder[billeder.length] = 'images/uploaded/plan.jpg';
billeder[billeder.length] = 'images/uploaded/plan1.jpg';
billeder[billeder.length] = 'images/uploaded/plan2.jpg';

                var randomtal = "";
                var tal = "";
                var run = true;
                for(i=1; i < billeder.length + 1; i++)
                {
                    run = true;
                    do
                    {
                        tal = Math.floor(Math.random() * billeder.length + 0);
                        if (randomtal.indexOf(tal + ",") == -1)
                        {
                            randomtal = randomtal + "" + tal + ",";
                            run = false;
                        }
                    }
           
                    while (run == true)
                    document.getElementById("billede_" + i).src = billeder[tal];
                }
            }
            </script>
<body onload="SwitchPics()">       
<div id="global">
    <div id="info" align="right">
    <a href="?side=Forsiden">Hjem</a> | <a href="?side=Kontakt">Kontakt</a> | <a href="?side=Login">Login</a>
</div>
    <div id="menu" align="left">
        | <a href="?side=Forsiden">Forsiden | <a href="?side=Profil&pkid=&pid=">Profil</a> | <a href="?side=Nyheder&pkid=&pid=">Nyheder</a> | <a href="?side=Offentlig&pkid=&pid=">Offentlig</a> | <a href="?side=Erhverv&pkid=&pid=">Erhverv</a> | <a href="?side=Parcelhuse&pkid=&pid=">Parcelhuse</a> | <a href="?side=Konkurrencer&pkid=&pid=">Konkurrencer</a> |

       
  </div>

       
    <div id="text" align="left">
       
       
        <table border="0" cellpadding="0" cellspacing="0" width="560" height="300" id="table_txt">
                <tr>
                    <td colspan="6" rowspan="3"><img src="images/uploaded/gunner.jpg" id="imgFront2" style="float:right" hspace="5" vspace="5" width="200"><b>Velkommen til Arkitekt siden...</b><br/><br/>Siden er pt. under opdatering - kig ind senere</td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img1.jpg" class="imgFront" id="billede1"></td>
                </tr>
                <tr>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img2.jpg" class="imgFront" id="billede2"></td>
                </tr>
                <tr>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img3.jpg" class="imgFront" id="billede3"></td>
                </tr>
                <tr>
                    <td width="100"></td>
                    <td width="100"></td>
                    <td width="60"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img4.jpg" class="imgFront" id="billede4"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img5.jpg" class="imgFront" id="billede5"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img6.jpg" class="imgFront" id="billede6"></td>
                    <td width="75" align="center" valign="middle"><img src="images/uploaded/img7.jpg" class="imgFront" id="billede7"></td>
                </tr>
            </table>
       
    </div>
<div id="Table_01">

    <div id="Arkitekt-03">    </div>
    <div id="Arkitekt-05">    </div>
    <div id="logo">    </div>
   
</div>
</div>






</body>
</html>
Avatar billede roenving Novice
22. maj 2006 - 12:23 #25
-- prøv at teste værdien af i:

I stedet for:

  while (run == true)
  document.getElementById("billede_" + i).src = billeder[tal];

Prøv dette og find ud af, hvad i er:

  if(run){
    alert(i);
    document.getElementById("billede_" + i).src = billeder[tal];
  }

-- jeg undrer mig nemlig over nullet i denne linje:

  tal = Math.floor(Math.random() * billeder.length + 0);
Avatar billede thesurfer Nybegynder
21. juni 2006 - 16:08 #26
Hmm.. jeg kan heller ikke lige huske, hvorfor jeg har det 0 med.. :-)
Avatar billede thesurfer Nybegynder
25. juli 2006 - 00:04 #27
Sker der noget her..?
Avatar billede webbe Nybegynder
25. juli 2006 - 07:52 #28
beklager jeg ikke har reageret på emnet i længere tid - men jeg har været på ferie og har haft travlt med arbejde...skal nok prøve at tjekke op på det hurtigst muligt og melde tilbage igen
Avatar billede webbe Nybegynder
25. juli 2006 - 09:21 #29
får nu to fejl ved test af værdien i:

1: While var ventet
2: et objekt var ventet

Har reduceret antallet af billeder til 6
Avatar billede thesurfer Nybegynder
25. juli 2006 - 18:55 #30
LÆS ALLE PUNKTERNE IGENNEM, inden du udfører dem:


1) Tilføj denne linie imellem <head> og </head>:
<script type="text/JavaScript" language="JavaScript" src="billede.js"></script>


2) Tilføj id="billedeX" (hvor "X" er 1 - 6) til dine billeder, der skal skifte


3) Ret id="imgFront" til class="imgFront" på dine billeder, der skal skifte


4) Ret "#imgFront{" til ".imgFront{" i din CSS fil


5) Opret filen "billede.js" (lægges i samme mappe som din "default.asp") med denne kode:

function visbilleder()
{
        var billeder = new Array();
        billeder[billeder.length] = 'images/uploaded/img.jpg';
        billeder[billeder.length] = 'images/uploaded/img1.jpg';
        billeder[billeder.length] = 'images/uploaded/img2.jpg';
        billeder[billeder.length] = 'images/uploaded/img3.jpg';
        billeder[billeder.length] = 'images/uploaded/img4.jpg';
        billeder[billeder.length] = 'images/uploaded/img5.jpg';

        var randomtal = "";
        var tal = "";
        var run = true;

        for(i=1; i < billeder.length + 1; i++)
        {
            run = true;
            while (run == true)
                {
                tal = Math.floor(Math.random() * billeder.length);

                if(randomtal.indexOf(tal + ",") == - 1)
                {
                    randomtal += tal + ",";
                    run = false;
                }
            }
            document.getElementById("billede" + i).src = billeder[tal];
        }
}


Husk:
I punkt 5 skal der ikke være "<script...>" og "</script>".. kun selve funktionen.
Avatar billede thesurfer Nybegynder
25. juli 2006 - 19:02 #31
Jeg vil anbefale at du bruger et gennemsigtigt 1x1 pixel GIF billede, som pladsholder..

Eksempel:

<img src="images/uploaded/space.gif" class="imgFront" id="billede1" />
Avatar billede thesurfer Nybegynder
25. juli 2006 - 19:07 #32
Lige et par ting mere:

A) DOCTYPE:
Doctype fortæller browseren hvilket regelsæt den skal følge.
Doctype linien skal være den første HTML linie i dine filer.

B)XHTML:
Jeg kan se at du bruger "/>" til at lukke dine tags. Dette indikerer at du bruger XHTML.
Ifølge brugeren olebole, parses browserene XHTML koden som fejlfyldt HTML4.01.
- Del 1: http://www.eksperten.dk/artikler/537
- Del 2: http://www.eksperten.dk/artikler/538
Overvej en anden doctype.
Avatar billede thesurfer Nybegynder
25. juli 2006 - 19:09 #33
C) Valider din side
Husk altid at validere din side, for at øge chancerne for at den vises korrekt:
- http://validator.w3.org/check?uri=http%3A%2F%2Fwww.gunnerkristensen.dk%2F

For at kunne validere siden, skal du benytte en doctype (punkt A).
Avatar billede webbe Nybegynder
26. juli 2006 - 08:32 #34
dette kan jeg godt få til at virke - meeeen.....den skifter ikke billederne....kun når siden refreshes....kan det løses?
Avatar billede webbe Nybegynder
26. juli 2006 - 08:34 #35
og er de billeder der skiftes imellem ikke fast definerede i dette:

function visbilleder()
{
        var billeder = new Array();
        billeder[billeder.length] = 'images/uploaded/img.jpg';
        billeder[billeder.length] = 'images/uploaded/img1.jpg';
        billeder[billeder.length] = 'images/uploaded/img2.jpg';
        billeder[billeder.length] = 'images/uploaded/img3.jpg';
        billeder[billeder.length] = 'images/uploaded/img4.jpg';
        billeder[billeder.length] = 'images/uploaded/img5.jpg';

meningen er jo, at de billeder der ligger i mappen "uploaded" skal læses ind i javascript via ASP....
Avatar billede thesurfer Nybegynder
26. juli 2006 - 11:50 #36
Ang [meningen er jo, at de billeder der ligger i mappen "uploaded" skal læses ind i javascript via ASP....]:

Det var jo det jeg gjorde i 09/05-2006 23:45:52... :-)
Avatar billede thesurfer Nybegynder
26. juli 2006 - 11:51 #37
Jeg kigger lige på det med rotation..

De 6 billeder skal bare skifte pladser, ik?
Avatar billede webbe Nybegynder
26. juli 2006 - 12:05 #38
ja - er godt klar over den del har været med - men kan jeg kopiere ASP koden ind i en .js-fil?

De 6 billeder skal ikke bare skifte pladser - de skal helst erstattes af nogle af de andre billeder der ligger i mappen "uploaded"
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:06 #39
1) Body:
<body onload="setup();">

2) JavaScipt i HEAD
Flyt denne linie op i mellem <head> og </head>:
<script type="text/JavaScript" language="JavaScript" src="billede.js"></script>

3) JavaScript-filens indhold:

var billeder = new Array();
var antal_sekunder_til_rotation = 3;

function setup()
{
    billeder[billeder.length] = 'images/uploaded/img.jpg';
    billeder[billeder.length] = 'images/uploaded/img1.jpg';
    billeder[billeder.length] = 'images/uploaded/img2.jpg';
    billeder[billeder.length] = 'images/uploaded/img3.jpg';
    billeder[billeder.length] = 'images/uploaded/img4.jpg';
    billeder[billeder.length] = 'images/uploaded/img5.jpg';
    visbilleder();
}

function visbilleder()
{
    var randomtal = "";
    var tal = "";
    var run = true;

    for(i=1; i < billeder.length + 1; i++)
    {
            run = true;
            while (run == true)
                    {
                    tal = Math.floor(Math.random() * billeder.length);

                    if(randomtal.indexOf(tal + ",") == - 1)
                    {
                            randomtal += tal + ",";
                            run = false;
                    }
            }
            document.getElementById("billede" + i).src = billeder[tal];
    }
    setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
}
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:06 #40
Ahh.. ASP i JS-filen.. jeg tror det ikke, men tester det lige..
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:10 #41
Det kan man ikke..
Så skal du flytte JS-koden ud af JS-filen, og ind i dit dokument.. sådan:

<head>
...en masse ting her..

<script type="text/JavaScript" language="JavaScript">
var billeder = new Array();
var antal_sekunder_til_rotation = 3;

function setup()
{
                <%
                dim fs,fo,x
                set fs=Server.CreateObject("Scripting.FileSystemObject")
                set fo=fs.GetFolder(server.mappath(".\images\uploaded")) ' Her skriver du stien til mappen!!!
                for each x in fo.files
                    response.write "billeder[billeder.length] = 'images/uploaded/" + x.name + "';" & vbCrLf
                next
                set fo=nothing
                set fs=nothing
                %>
    visbilleder();
}

function visbilleder()
{
    var randomtal = "";
    var tal = "";
    var run = true;

    for(i=1; i < billeder.length + 1; i++)
    {
            run = true;
            while (run == true)
                    {
                    tal = Math.floor(Math.random() * billeder.length);

                    if(randomtal.indexOf(tal + ",") == - 1)
                    {
                            randomtal += tal + ",";
                            run = false;
                    }
            }
            document.getElementById("billede" + i).src = billeder[tal];
    }
    setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
}
</script>
</head>
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:11 #42
Det betyder at du ikke længere har brug for denne linie, så slet den bare:

<script type="text/JavaScript" language="JavaScript" src="billede.js"></script>
Avatar billede webbe Nybegynder
26. juli 2006 - 12:18 #43
se nu begynder det at ligne noget.

I Firefox får jeg ingen fejl, men i IE får jeg en "document.GetElementById" fejl

Derudover skifter billederne kun én gang efter 3 sekunder....
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:25 #44
Ang [men i IE får jeg en "document.GetElementById" fejl]:

1) Har du prøvet på at rette i koden? Det er et lille "g" i "document.getElementById"

2) Sidder du med en gammel version af Internet Explorer? IE understøtter, så vidt jeg ved, document.getElementById.. men jeg kan lige lave noget ekstra..
Avatar billede webbe Nybegynder
26. juli 2006 - 12:28 #45
nej - jeg har ikke rettet i koden

jeg bruger en IE 6.0.2
Avatar billede thesurfer Nybegynder
26. juli 2006 - 12:36 #46
Din kode skal nu se sådan ud (her er KUN ændringerne, erstat ikke andet):

// Variabler:
var billeder = new Array();
var antal_sekunder_til_rotation = 3;
var ns = (document.layers) ? 1 : 0;
var ie = (document.all) ? 1 : 0;

// vis billeder:
function visbilleder()
{
    var randomtal = "";
    var tal = "";
    var run = true;

    for(i=1; i < billeder.length + 1; i++)
    {
            run = true;
            while (run == true)
                    {
                    tal = Math.floor(Math.random() * billeder.length);

                    if(randomtal.indexOf(tal + ",") == - 1)
                    {
                            randomtal += tal + ",";
                            run = false;
                    }
            }


            if (ns) { document.layers["billede" + i].src = billeder[tal];    }
            else if (ie) { document.all["billede" + i].src = billeder[tal]; }
            else { document.getElementById("billede" + i).src = billeder[tal]; }
    }
    setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
}
Avatar billede webbe Nybegynder
26. juli 2006 - 12:55 #47
får stadig en document.getElementById() er null eller ikke et objekt i IE, samt at billederne kun skifter én gang.

Har følgende kode nu:

<script type="text/JavaScript" language="JavaScript">
        var billeder = new Array();
        var antal_sekunder_til_rotation = 3;
        var ns = (document.layers) ? 1 : 0;
        var ie = (document.all) ? 1 : 0;;
       
        function setup()
        {
                        <%
                        dim fs,fo,x
                        set fs=Server.CreateObject("Scripting.FileSystemObject")
                        set fo=fs.GetFolder(server.mappath(".\images\uploaded")) ' Her skriver du stien til mappen!!!
                        for each x in fo.files
                            response.write "billeder[billeder.length] = 'images/uploaded/" + x.name + "';" & vbCrLf
                        next
                        set fo=nothing
                        set fs=nothing
                        %>
            visbilleder();
        }
       
        function visbilleder()
        {
            var randomtal = "";
            var tal = "";
            var run = true;
       
            for(i=1; i < billeder.length + 1; i++)
            {
                    run = true;
                    while (run == true)
                            {
                            tal = Math.floor(Math.random() * billeder.length);
       
                            if(randomtal.indexOf(tal + ",") == - 1)
                            {
                                    randomtal += tal + ",";
                                    run = false;
                            }
                    }
                    document.getElementById("billede" + i).src = billeder[tal];
                    if (ns) { document.layers["billede" + i].src = billeder[tal];    }
            else if (ie) { document.all["billede" + i].src = billeder[tal]; }
            else { document.getElementById("billede" + i).src = billeder[tal]; }
            }
            setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
        }
    </script>
Avatar billede thesurfer Nybegynder
26. juli 2006 - 15:41 #48
Det er fordi du ikke har brugt min kode fra 26/07-2006 12:36:48, men har bare kopieret og klistret.. :-)

Det er denne linie der skaber problemer:

document.getElementById("billede" + i).src = billeder[tal];

Den skal bare slettes.
Avatar billede thesurfer Nybegynder
26. juli 2006 - 15:42 #49
Husk at der skal stå:

            if (ns) { document.layers["billede" + i].src = billeder[tal];    }
            else if (ie) { document.all["billede" + i].src = billeder[tal]; }
            else { document.getElementById("billede" + i).src = billeder[tal]; }

Dvs, det er kun linie over de 3 linier der skal væk.. ikke den der starter med "else {"..
Avatar billede webbe Nybegynder
27. juli 2006 - 07:55 #50
I Firefox får jeg ikke nogen fejl, men i IE får jeg nu "document.all[...] er null eller ikke et objekt"

Derudover skifter billederne kun én gang - de skal bare blive ved med at skifte med 3 sekunders mellemrum....

ser nu sådan ud:

function visbilleder()
        {
            var randomtal = "";
            var tal = "";
            var run = true;
       
            for(i=1; i < billeder.length + 1; i++)
            {
                    run = true;
                    while (run == true)
                            {
                            tal = Math.floor(Math.random() * billeder.length);
       
                            if(randomtal.indexOf(tal + ",") == - 1)
                            {
                                    randomtal += tal + ",";
                                    run = false;
                            }
                    }
                    if (ns) { document.layers["billede" + i].src = billeder[tal];    }
                    else if (ie) { document.all["billede" + i].src = billeder[tal]; }
                    else { document.getElementById("billede" + i).src = billeder[tal]; }
            }
            setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
        }
Avatar billede webbe Nybegynder
27. juli 2006 - 07:56 #51
beklager at jeg er sådan en skovl til javascript.... ;o(
Avatar billede thesurfer Nybegynder
27. juli 2006 - 13:42 #52
Det mærkelige er, at hos mig virker det i Opera v9, FireFox v1.5.0.4 og Internet Explorer v6 (SP2)..

Har du også SP2 installeret?
Avatar billede thesurfer Nybegynder
27. juli 2006 - 13:44 #53
Upload det lige til din server, og husk at flytte JavaScricp-tag'et op i HEAD-området.
Avatar billede webbe Nybegynder
27. juli 2006 - 14:09 #54
det er hermed gjort.....
Avatar billede thesurfer Nybegynder
27. juli 2006 - 14:35 #55
En vigtig ting, når man lægger billeder op på nettet:

Store billeder: Billeder man skal se nærmere på
Thumbnails/små: Miniature som kan føre til store billeder

Det du skal have gjort:
Lav en lille udgave (75x75 pixels)af hver eneste billede, der er større end 75x75 pixels.

Det er disse billeder, du skal have preloadet.

Normalt har man en thumbnail (lille billede) i en mappe, og de "rigtige" (store) billeder i en anden mappe.

Som jeg kan se på din forside, er det ikke meningen at man skal se billederne i deres store udgaver, så jeg kan klart anbefale at du laver thumbnails.
Avatar billede webbe Nybegynder
27. juli 2006 - 14:41 #56
det er også med i  min plan - er bare ikke nået så langt endnu - men det ændrer vel ikke det faktum at jeg stadig får "document.all[...] er null eller ikke et objekt" i IE, samt at den kun skifter billederne én gang....både i IE og Firefox
Avatar billede thesurfer Nybegynder
27. juli 2006 - 14:47 #57
Jeg ved ikke helt om det er derfor, men i 26/07-2006 12:06:01 skrev jeg at din body skal se sådan ud:

<body onload="setup();">

Det er setup() der skal kalde visbilleder(), og ikke body.. prøv det lige..

Det kan også have noget et gøre med, at billederne er lang tid om at loade..

Nu får jeg også fejlen.. men prøv lige rettelsen..
Avatar billede webbe Nybegynder
27. juli 2006 - 14:50 #58
ok - kaldte visbilleder() i onload, sammen med setup() - men jeg får du stadig fejlen plus at billederne slet ikke skifter.
Avatar billede thesurfer Nybegynder
27. juli 2006 - 14:53 #59
Husk at opdatere online, så jeg kan se rettelserne og resultatet..
Avatar billede webbe Nybegynder
27. juli 2006 - 15:00 #60
gjort
Avatar billede thesurfer Nybegynder
27. juli 2006 - 15:06 #61
Til at lave thumbnails, kan du bruger "Easy Gallery Generator": http://www.tucows.com/preview/284926

Du skal bare fortælle den hvor billederne ligger, og hvor thumbnails skal ligge. Så laver den små kopier af alle de store billeder.

Thumbnailsne hedder: StoreBilledeNavn_t (dvs, den tilføjer "_t")
Avatar billede thesurfer Nybegynder
27. juli 2006 - 15:12 #62
Hmm.. Det er den eneste fejl jeg får, så jeg har lige omskrevet IF-sætningerne..

Gammel kode:

                    if (ns) { document.layers["billede" + i].src = billeder[tal];    }
                    else if (ie) { document.all["billede" + i].src = billeder[tal]; }
                    else { document.getElementById("billede" + i).src = billeder[tal]; }

Ny kode:

                    if (ns)
                    {
                        document.layers["billede" + i].src = billeder[tal];
                    } else {
                        if (ie) {
                            document.all["billede" + i].src = billeder[tal];
                        } else {
                            document.getElementById("billede" + i).src = billeder[tal];
                        }
                    }
Avatar billede webbe Nybegynder
27. juli 2006 - 15:28 #63
stadig det samme - viser lige hele min kode:

<!-- #include file="counter/online_taeller.asp" -->
<!-- #include file="counter/taeller.asp" -->
<html>
<head>
<title>Arkitektfirmaet Gunner Kristensen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<%if request.QueryString("side") = "Forsiden" or request.QueryString("side") = "" then%>
    <script type="text/JavaScript" language="JavaScript">
        var billeder = new Array();
        var antal_sekunder_til_rotation = 3;
        var ns = (document.layers) ? 1 : 0;
        var ie = (document.all) ? 1 : 0;;
       
        function setup()
        {
                        <%
                        dim fs,fo,x
                        set fs=Server.CreateObject("Scripting.FileSystemObject")
                        set fo=fs.GetFolder(server.mappath(".\images\uploaded")) ' Her skriver du stien til mappen!!!
                        for each x in fo.files
                            response.write "billeder[billeder.length] = 'images/uploaded/" + x.name + "';" & vbCrLf
                        next
                        set fo=nothing
                        set fs=nothing
                        %>
            visbilleder();
        }
       
        function visbilleder()
        {
            var randomtal = "";
            var tal = "";
            var run = true;
       
            for(i=1; i < billeder.length + 1; i++)
            {
                    run = true;
                    while (run == true)
                            {
                            tal = Math.floor(Math.random() * billeder.length);
       
                            if(randomtal.indexOf(tal + ",") == - 1)
                            {
                                    randomtal += tal + ",";
                                    run = false;
                            }
                    }
                    if (ns)
                    {
                        document.layers["billede" + i].src = billeder[tal];
                    } else {
                        if (ie) {
                            document.all["billede" + i].src = billeder[tal];
                        } else {
                            document.getElementById("billede" + i).src = billeder[tal];
                        }
                    }
            }
            setTimeout('visbilleder()', antal_sekunder_til_rotation * 1000);
        }
    </script>
<%end if%>

</head>
<!-- #include file="functions.asp" -->

<body <%if request.QueryString("side") = "Forsiden" or request.QueryString("side") = "" then%>onload="setup();"<%end if%>>       
<div id="globe">
<div id="global">
    <div id="vandmaerke"></div>
    <div id="info" align="right"><%info%></div>
    <div id="menu" align="left"><%menu%></div>
    <div id="text" align="left">
        <%if request.QueryString("side") = "Nyheder" then%>
            <%nyheder%>
        <%elseif request.QueryString("side") = "Profil" Then%>
            <%profil%>
        <%elseif request.QueryString("side") = "Offentlig" Then%>
            <%offentlig%>
        <%elseif request.QueryString("side") = "Erhverv" then%>
            <%erhverv%>
        <%elseif request.QueryString("side") = "Parcelhuse" then%>
            <%parcelhuse%>
        <%elseif request.QueryString("side") = "Konkurrencer" then%>
            <%konkurrencer%>
        <%elseif request.QueryString("side") = "Kontakt" then%>
            <%kontakt%>
        <%elseif request.QueryString("side") = "Login" then%>
            <%login%>
        <%elseif request.QueryString("side") = "Forsiden" or request.QueryString("side") = "" then%>
            <%forsiden%>
        <%end if%>
    </div>
<div id="Table_01">
   
    <div id="Arkitekt-03">    </div>
    <div id="Arkitekt-05">
        <table border="0" cellpadding="0" cellspacing="0" width="614" align="center" height="100%">
            <tr>
                <td align="center" valign="bottom" height="100%">
                    <img src="images/Arkitekt_05_2.png">
                </td>
            </tr>
        </table>
    </div>
   
   
</div>
</div>

</div>
</body>
</html>

Hvis du ser en fejl, vil du så ikke være rar at, rette det og poste HELE koden? Er nemlig bange for jeg har ikke helt har styr på klammer m.m. i javascriptet.
Avatar billede thesurfer Nybegynder
27. juli 2006 - 15:39 #64
Du kan lige lave thumbnails mens jeg kigger på koden.. :-)

Opret en mappe the hedder "thumbs", og upload filerne der hvor filnavnet indeholder "_t" til "thumbs". Derefter skal du ".\images\uploaded" i server.mappath(".\images\uploaded") til mappen med thumbnails..
Avatar billede thesurfer Nybegynder
27. juli 2006 - 15:47 #65
Når man har så mange muligheder, plejer man at bruge Switch i stedet for IF-sætninger..

Gammel kode:

      <%if request.QueryString("side") = "Nyheder" then%>
            <%nyheder%>
        <%elseif request.QueryString("side") = "Profil" Then%>
            <%profil%>
        <%elseif request.QueryString("side") = "Offentlig" Then%>
            <%offentlig%>
        <%elseif request.QueryString("side") = "Erhverv" then%>
            <%erhverv%>
        <%elseif request.QueryString("side") = "Parcelhuse" then%>
            <%parcelhuse%>
        <%elseif request.QueryString("side") = "Konkurrencer" then%>
            <%konkurrencer%>
        <%elseif request.QueryString("side") = "Kontakt" then%>
            <%kontakt%>
        <%elseif request.QueryString("side") = "Login" then%>
            <%login%>
        <%elseif request.QueryString("side") = "Forsiden" or request.QueryString("side") = "" then%>
            <%forsiden%>
        <%end if%>


Ny kode:

<%
select case LCase(request.querystring("side"))

case "nyheder"
    nyheder

case "profil"
    profil

case "offentlig"
    offentlig

case "erhverv"
    erhverv

case "parcelhuse"
    parcelhuse

case "konkurrencer"
    konkurrencer

case "kontakt"
    kontakt

case "login"
    login

case "forside"
    forside

case else
    forsiden

end select
%>
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:01 #66
Ahhh... nu kan jeg se fejlen..

Gammel kode:
for(i=1; i < billeder.length + 1; i++)


Ny kode:
for(i=1; i < 6 + 1; i++)
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:04 #67
Så snart at du har lavet thumbnails, kan man indsætte en preloader, hvis det er nødvendigt.. kommer an på billedernes filstørrelser..
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:08 #68
Hmm.. Jeg skal have fundet en anden batch image resizer, hvor man selv kan bestemme størrelsen.. vent med at lave thumbnails..

Du kan bare lave rettelserne..
Avatar billede webbe Nybegynder
27. juli 2006 - 16:18 #69
Huraaaaa - så virker det sq.....tusind tak for din store indsats
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:23 #70
Thumbnails:

1) Downlolad http://www.snapfiles.com/download/dldigital-image-tool.html
2) Klik på "Start" når du starter programmet
3) Klik På "Settings" og indtast "75" i "Size limit (pixels)"
4) Klik på "Maintain aspect ration" så den blå lampe slukker
5) Klik på "+" og vælg alle dine billeder
6) Klik på "Process"

Så får du alle billederne i 75x75 pixels.

- Svar
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:29 #71
Jeg glemte:
5.A) Klik på "Select folder to save new images" og vælg en destinationsmappe, så den ikke overskriver originalerne (hvis den altså gør det?)
Avatar billede webbe Nybegynder
27. juli 2006 - 16:34 #72
bruger ASPImage til det, da jeg ikke selv skal vedligeholde siden - men tak for tippet
Avatar billede thesurfer Nybegynder
27. juli 2006 - 16:38 #73
Helt iorden..
Takker for points :-)
Avatar billede webbe Nybegynder
28. juli 2006 - 08:11 #74
var så lidt - er imponeret over din tålmodighed med en javascript-tåbe som mig ;0)
Avatar billede thesurfer Nybegynder
28. juli 2006 - 14:56 #75
Jeg har hjulpet familie og venner med IT i mange år nu.. Og der skal man have tålmodighed.. :-)

Men det er ret simpelt:
- Følg anvisningerne (typisk til punkt og prikke)
- Vis lidt logisk tænkning

Så kommer man langt, og gør det nemmere for ham/hende der skal hjælpe..

Held og lykke i fremtiden :-)
Avatar billede webbe Nybegynder
31. juli 2006 - 07:42 #76
takker ;0)
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