Avatar billede krel Nybegynder
19. april 2008 - 12:41 Der er 5 kommentarer og
1 løsning

Mappe i stedet for hver enkelt fil

Hey eksperter?

Jeg har fundet dette script der preloader billeder på ens hjemmeside.. det eneste jeg syns er knapt så godt er at man skal indtaste hver enkelt billedsti som skal preloades.. så tænkte om man ikke kunne angive en mappe i stedet for - både fordi man skal en hel del (for mit vedkommende) og så også når man tilføjer billeder til evt. gallerier ville det være meget nemmere hvis det bare var en mappe og ikke hver enkelt fil destination?

koden ser på nuværende tidspunkt sådan her ud:
#head
<script language="JavaScript1.1">
var locationAfterPreload = "index.asp" // URL of the page after preload finishes
var lengthOfPreloadBar = 100 // Length of preload bar (in pixels)
var heightOfPreloadBar = 1 // Height of preload bar (in pixels)
// Put the URLs of images that you want to preload below (as many as you want)
var yourImages = new Array()
if (document.images) {
var dots = new Array("mappe/fil.type","mappe/fil.type","osv","osv")
dots[0] = new Image(1,1)
dots[0].src = "grafik/load/black.gif" // default preloadbar color (note: You can substitute it with your image, but it has to be 1x1 size)
dots[1] = new Image(1,1)
dots[1].src = "grafik/load/blue.gif" // color of bar as preloading progresses (same note as above)
var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/yourImages.length),currCount = 0
var loaded = new Array(),i,covered,timerID
var leftOverWidth = lengthOfPreloadBar%coverage
}
function loadImages() {
for (i = 0; i < yourImages.length; i++) {
preImages[i] = new Image()
preImages[i].src = yourImages[i]
}
for (i = 0; i < preImages.length; i++) {
loaded[i] = false
}
checkLoad()
}
function checkLoad() {
if (currCount == preImages.length) {
location.replace(locationAfterPreload)
return
}
for (i = 0; i <= preImages.length; i++) {
if (loaded[i] == false && preImages[i].complete) {
loaded[i] = true
eval("document.img" + currCount + ".src=dots[1].src")
currCount++
}
}
timerID = setTimeout("checkLoad()",10)
}
</script>

#body
<script language="JavaScript1.1">
if (document.images) {
var preloadBar = ''
for (i = 0; i < yourImages.length-1; i++) {
preloadBar += '<img src="' + dots[0].src + '" width="' + coverage + '" height="' + heightOfPreloadBar + '" name="img' + i + '" align="absmiddle">'
}
preloadBar += '<img src="' + dots[0].src + '" width="' + (leftOverWidth+coverage) + '" height="' + heightOfPreloadBar + '" name="img' + (yourImages.length-1) + '" align="absmiddle">'
document.write(preloadBar)
loadImages()
}
</script>

mvh.
Kristian
Avatar billede olebole Juniormester
19. april 2008 - 12:47 #1
<ole>

JavaScript kan ikke læse dine mapper. Du skal lade et serverscript læse mappen og skrive stierne til billederne ud i det array, du viser ovenfor

/mvh
</bole>
Avatar billede krel Nybegynder
19. april 2008 - 13:15 #2
ved godt at new array skal udfyldes med mine egne stier på filer...

Men lad mig så dreje spm'et lidt, hvordan laver man et script/function som kan læse i mapper netop så undgår at skulle indtaste alle filnavne hver eneste gang et billede/galleri tilføjes?

kan det overhovedet lade sig gøre så? - eller er der kun den hårde vej og indtaste alle stierne....?
Avatar billede olebole Juniormester
19. april 2008 - 13:24 #3
Det skal du nok spørge om i ASP-kategorien. Du kan ikke løse det med clientside JS  =)
Avatar billede krel Nybegynder
19. april 2008 - 13:40 #4
okay jamen så lukker jeg her og forsøger mig i asp i stedet....

point?
Avatar billede olebole Juniormester
19. april 2008 - 13:45 #5
Ellers tak. Brug dem i ASP kategorien  ;o)
Avatar billede krel Nybegynder
19. april 2008 - 14:00 #6
OK vil jeg gøre tak for din tid ole c",)
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