Avatar billede theselfimages Nybegynder
26. januar 2003 - 16:21 Der er 9 kommentarer og
1 løsning

Slideshow script problem (crossbrowser)

Er der nogen der har et bud på hvorfor nedenstående script slet IKKE virker i Opera og ikke fader i NS, men i stedet skifter hårdt mellem hvert billede? Kunne det evt. modificeres set i forhold til det andet script længere nede. Dette virker nemlig fint crossbrowser.


<html>
<head>
<script language="JavaScript1.2">
// (C) 2000 www.CodeLifter.com
// http://www.codelifter.com
// Free for all users, but leave in this  header
// NS4-6,IE4-6
// Fade effect only in IE; degrades gracefully

// =======================================
// set the following variables
// =======================================

// Set initial delay (milliseconds)
var initDelay = 1;

// Set slideShowSpeed (milliseconds)
var slideShowSpeed = new Array(
    2000,
    2000,
    2000,
    2000,
    2000
);

// Duration of crossfade (seconds)
var crossFadeDuration = 3

// Specify the image files
var Pic = new Array() // don't touch this
// to add more images, just continue
// the pattern, adding to the array below

Pic[0] = '1.jpg'
Pic[1] = '2.jpg'
Pic[2] = '3.jpg'
Pic[3] = '4.jpg'
Pic[4] = '5.jpg'

// =======================================
// do not edit anything below this line
// =======================================

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[j])
}
</script>
</head>

<body onload="setTimeout('runSlideShow()', initDelay)">

<img border="0" src="1.jpg" name='SlideShow' width="235" height="176">
<br>
<br>
<button onclick="clearTimeout(t)">Stop</button>
<button onclick="runSlideShow()">Kør</button>

</body>
</html>
Avatar billede theselfimages Nybegynder
26. januar 2003 - 16:23 #1
Dette script syntes at virke fint i både NS og Opera:


<script language="JavaScript1.2">

//Fade-in image slideshow- By Dynamic Drive
//For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
//This credit MUST stay intact for use

var slideshow_width=140 //SET IMAGE WIDTH
var slideshow_height=225 //SET IMAGE HEIGHT
var pause=3000 //SET PAUSE BETWEEN SLIDE (3000=3 seconds)

var fadeimages=new Array()
//SET IMAGE PATHS. Extend or contract array as needed
fadeimages[0]="photo1.jpg"
fadeimages[1]="photo2.jpg"
fadeimages[2]="photo3.jpg"

////NO need to edit beyond here/////////////

var preloadedimages=new Array()
for (p=0;p<fadeimages.length;p++){
preloadedimages[p]=new Image()
preloadedimages[p].src=fadeimages[p]
}

var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var dom=document.getElementById&&navigator.userAgent.indexOf("Opera")==-1

if (ie4||dom)
document.write('<div style="position:relative;width:'+slideshow_width+';height:'+slideshow_height+';overflow:hidden"><div  id="canvas0" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div><div id="canvas1" style="position:absolute;width:'+slideshow_width+';height:'+slideshow_height+';top:0;left:0;filter:alpha(opacity=10);-moz-opacity:10"></div></div>')
else
document.write('<img name="defaultslide" src="'+fadeimages[0]+'">')

var curpos=10
var degree=10
var curcanvas="canvas0"
var curimageindex=0
var nextimageindex=1


function fadepic(){
if (curpos<100){
curpos+=10
if (tempobj.filters)
tempobj.filters.alpha.opacity=curpos
else if (tempobj.style.MozOpacity)
tempobj.style.MozOpacity=curpos/100
}
else{
clearInterval(dropslide)
nextcanvas=(curcanvas=="canvas0")? "canvas0" : "canvas1"
tempobj=ie4? eval("document.all."+nextcanvas) : document.getElementById(nextcanvas)
tempobj.innerHTML='<img src="'+fadeimages[nextimageindex]+'">'
nextimageindex=(nextimageindex<fadeimages.length-1)? nextimageindex+1 : 0
setTimeout("rotateimage()",pause)
}
}

function rotateimage(){
if (ie4||dom){
resetit(curcanvas)
var crossobj=tempobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.style.zIndex++
var temp='setInterval("fadepic()",50)'
dropslide=eval(temp)
curcanvas=(curcanvas=="canvas0")? "canvas1" : "canvas0"
}
else
document.images.defaultslide.src=fadeimages[curimageindex]
curimageindex=(curimageindex<fadeimages.length-1)? curimageindex+1 : 0
}

function resetit(what){
curpos=10
var crossobj=ie4? eval("document.all."+what) : document.getElementById(what)
if (crossobj.filters)
crossobj.filters.alpha.opacity=curpos
else if (crossobj.style.MozOpacity)
crossobj.style.MozOpacity=curpos/100
}

function startit(){
var crossobj=ie4? eval("document.all."+curcanvas) : document.getElementById(curcanvas)
crossobj.innerHTML='<img src="'+fadeimages[curimageindex]+'">'
rotateimage()
}

if (ie4||dom)
window.onload=startit
else
setInterval("rotateimage()",pause)

</script>

<p align="center"><font face="Arial" size="-2">Free DHTML scripts provided by<br>
<a href="http://www.dynamicdrive.com">Dynamic Drive</a></font></p>
Avatar billede olebole Juniormester
26. januar 2003 - 16:39 #2
<ole>

Script'et anvender 'MozOpacity', der understøttes af Mozilla, NS og Opera. Det svarer nogenlunde til IE's Alpha-filter.

/mvh
</bole>
Avatar billede theselfimages Nybegynder
26. januar 2003 - 16:46 #3
Ja! nogen mulighed for at det første script vil kunne benytte 'MozOpacity' i stedet? Kunne det modificeres til dette, eller er det for kompliceret?
Og ville du evt. gide gi' det forsøg?

Det er altid disse mangel på standarder man er oppe imod :(
Avatar billede olebole Juniormester
26. januar 2003 - 17:02 #4
Nu er et menneske jo en ekstremt kompliceret 'maskine' - og det er da lykkedes mig at lave tre dejlige børn. Godt nok med hjælp fra to kvinder - men alligevel  ;o)

Har du testet, om du kan bruge det nye script til de billeder, du vil anvende? MozOpacity er nemlig en tung sjover og resultatet kan let blive noget hakkeri ved store (tunge) billeder.
Jeg vil gerne skrive den til dig - men helst ikke spilde tiden  ;o)
/mvh
Avatar billede theselfimages Nybegynder
26. januar 2003 - 17:18 #5
Hmm.. den er lidt tung i starten:
http://www.theselfimages.dk/test.htm

men billederne kan jo sagtens preloades inden scriptet starter.

Hvis du kan integrer 'MozOpacity' i det øverste script (som det står nu med initDelay og Stop/Kør funktion samt onload settings) ville det være lækkert. Iøvrigt arbejder jeg på et andet webprojekt hvor jeg får brug for samme script, men til langt mindre billeder. Så alt i alt: Ingen spild af tid. Det ville tværtimod være meget prisværdigt.
Avatar billede theselfimages Nybegynder
28. januar 2003 - 15:45 #6
Håber stadig at du har lyst til at hjælpe?
Det ville virkelig være til stor gavn og sikkert også for andre.

Mvh. Lars
Avatar billede theselfimages Nybegynder
08. februar 2003 - 19:29 #7
?
Avatar billede theselfimages Nybegynder
08. februar 2003 - 19:30 #8
Olebole => skal jeg lukke spørgsmålet?
Avatar billede theselfimages Nybegynder
23. februar 2003 - 17:51 #9
Ole?
Avatar billede theselfimages Nybegynder
27. februar 2003 - 02:57 #10
Spørgsmålet lukkes.
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel