Avatar billede moejensen Nybegynder
24. juni 2005 - 10:37 Der er 14 kommentarer og
1 løsning

fade billeder i både IE, mozilla, opera, firefox og netscape

Er der nogen der har et bud på hvad jeg skal lave om i følgende script: http://webdesign101.dk/javascript/slideshow/slideshow6.php

for at fadningen også virke i andre browsere end IE?
Avatar billede erikjacobsen Ekspert
24. juni 2005 - 10:43 #1
Jeg ved ikke om du kan opnå det, men du skal i hvet fald gøre det funktionelt, fading eller ej. Du skulle derfor nok kunne (utestet)

  if ( billede.filters) {
    //..brug filters
  } else {
    // gør det uden filters
  }
Avatar billede moejensen Nybegynder
24. juni 2005 - 10:49 #2
skal jeg ikke nærmere tjekke på browsertypen, eller er det nok at tjekke på filter?
Avatar billede erikjacobsen Ekspert
24. juni 2005 - 10:50 #3
Hvis du checker på browsertypen, skal du selv holde styr på hvilke versioner der har hvilke funktioner. Det jeg anbefaler er simpelthen at spørge om funktionen er der - hvis ikke, så tager du plan B ;)
Avatar billede moejensen Nybegynder
24. juni 2005 - 10:52 #4
okay, det er selvfølgelig meget smart
Avatar billede roenving Novice
24. juni 2005 - 16:12 #5
Jeg har aldrig selv prøvet den i Opera, men den virker fortrinligt i de browsere, jeg har testet den med, så du kan da prøve:

http://roenving.users.whitehat.dk/index.html?/WD5Opacity.html
Avatar billede moejensen Nybegynder
24. juni 2005 - 16:52 #6
roenving, det er også dit eksempel jeg har haft kigget på, men kan ikke helt se hvordan jeg får de to scripts til at hænge sammen.
Avatar billede roenving Novice
25. juni 2005 - 12:45 #7
Tjah, jeg har godt nok en gammel udgave liggende i et spørgsmål, men opdateret med css3-ændringer, vil det være sådan:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Fade slideshow</title>

<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/478961,http://www.eksperten.dk/spm/628222">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/javascript" language="JavaScript1.2">
var slideshow_width='400px'; //SET IMAGE WIDTH
var slideshow_height='300px'; //SET IMAGE HEIGHT
var pause=3000; //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
var imagepath = "../img/";
var linkspath = "";

var fimages = new Array();
var imlinks = new Array();

fimages[fimages.length] = "billede.jpg,1";// <- 1-tallet bruges som antal visninger på en runde ->
imlinks[imlinks.length] = "http://larryelmore.com/colorg04.htm"
fimages[fimages.length] = "eksperten_logo_new.gif,3";// <- dette billede vises 3 gange på en runde ->
imlinks[imlinks.length] = "http://www.eksperten.dk/"

var preloadedimages=new Array();
  for (p=0;fimages.length>p;p++){
    preloadedimages[p] = new Image();
    preloadedimages[p].src = imagepath + fimages[p].substring(0,fimages[p].indexOf(","));
  }

var fadeimages = new Array();
var imagelinks = new Array();
for(i=0;fimages.length>i;i++){
  num = fimages[i].replace(/.*\,(\d+)$/,"$1");
  for(j=0;num>j;j++){
    fadeimages[fadeimages.length] = imagepath + fimages[i].substring(0,fimages[i].indexOf(","));
    imagelinks[imagelinks.length] = linkspath + imlinks[i];
  }
}

var slidelength = fadeimages.length,curcanvas,curimageindex,actZ=100;
function shuffleArray(a) {
var t=s=0;
  for(var i=0;a.length>i;i++){
  t = Math.floor(Math.random()*a.length);
  s = a[i];
  a[i] = a[t] ;
  a[t] = s;
  }
return a;
}
var ix = new Array();
for(i=0;slidelength>i;i++)ix[i]=i;
ix = shuffleArray(ix);

var OpC = new Array();
var OpC = new Array();
var ie,moz,css3;
function startOpChange(elm,end,tim){
  ie = !!elm.filters;
  moz = elm.style.MozOpacity != undefined;
  css3 = elm.style.opacity != undefined;
  if (!ie && !moz && !css3)return;
  var idx = OpC.length;
    for(var i=0;idx>i;i++){
        if(OpC[i][0]==elm){
          clearInterval(OpC[i][4]);
            idx = i;
            break;
        }
        OpC[idx] = new Array();
    }
  if(idx==0)OpC[idx] = new Array();
   
    if(ie)actOp=elm.filters.alpha.opacity;
    else if(css3)actOp=(elm.style.opacity*100);
    else actOp=(elm.style.MozOpacity*100);
  if (actOp!=end){
    OpC[idx][0]=elm;
    OpC[idx][1]=actOp;
    OpC[idx][2]=end;
    OpC[idx][3]=(end>actOp)?1:-1;
    var delayTime = Math.floor((tim*1000)/Math.abs((actOp-end)));
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}
function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  else if(css3)OpC[idx][0].style.opacity=Math.min(0.99,OpC[idx][1]/100);
  else OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    return;
  }
}

function initSlide(){
  var c = document.getElementById('slidecontainer');
  with(c.style){
    position='relative';
    overflow='hidden';
    width=slideshow_width;
    height=slideshow_height;
  }
  if (ie||moz){
    for(i=0;2>i;i++){
      var im = document.createElement('IMG');
      c.appendChild(im);
      with(im.style){
        position='absolute';
        top=left='0px';
        width=slideshow_width;
        height=slideshow_height;
        filter='alpha(opacity=5)';
        MozOpacity='0.05';
        zIndex = ++actZ;      }
      im.id = 'canvas'+i;
      im.src = imagepath + fimages[i].substring(0,fimages[i].indexOf(","));
      im.alt = imagelinks[i];
      im.onclick = function(){location.href = imagelinks[i]};
    }
    startOpChange(im,100,pause/10000);
    setInterval('nextSlide()',pause);
  }else{
    var im = document.createElement('IMG');
    c.appendChild(im);
    with(im.style){
      position='absolute';
      top=left='0px';
      width=slideshow_width;
      height=slideshow_height;
    }
    im.id = "canvas"
    im.src = fadeimages[0];
    im.style.zIndex = 0;
  }
  curcanvas="canvas1";
  curimageindex=0;
}

function nextSlide(){
  startOpChange(document.getElementById(curcanvas),5,pause/10000);
  curcanvas = 'canvas' + ((curcanvas=='canvas0')?1:0);
  var im = document.getElementById(curcanvas);
  if(curimageindex+1==slidelength)ix = shuffleArray(ix);
  curimageindex = ++curimageindex%slidelength;
  im.src = fadeimages[ix[curimageindex]];
  im.alt = imagelinks[ix[curimageindex]];
  im.onclick = function(){location.href = imagelinks[ix[curimageindex]]};
  im.style.zIndex += 1;
  startOpChange(im,100,pause/10000); 
}

function rotateimage(){
  var im = document.getElementById('canvas');
  if(curimageindex+1==slidelength)ix = shuffleArray(ix);
  curimageindex = ++curimageindex%slidelength;
  im.src = fadeimages[ix[curimageindex]];
}

    if (ie||moz)
        window.onload=initSlide;
    else
        setInterval("rotateimage()",pause);

</script>
</head>

<body>
  <div id="slidecontainer"></div>
</body>
</html>
Avatar billede roenving Novice
25. juni 2005 - 12:45 #8
-- det skal tilføjes, at udgaven er lavet til at man kan differentiere visningstiden, men den feature er relativt let at fjerne !-)
Avatar billede roenving Novice
25. juni 2005 - 13:01 #9
Hrm, der var jeg lidt for hurtig, og der skal åbenbart også arbejdes mere på tingen, for den laver stadig mærkværdigheder i min Mozilla ...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title>Fade slideshow</title>

<meta name="Generator" content="Stone's WebWriter 4">
<meta name="keywords" content="roenving,http://www.eksperten.dk/spm/478961,http://www.eksperten.dk/spm/628222">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script type="text/javascript" language="JavaScript1.2">
var slideshow_width='400px'; //SET IMAGE WIDTH
var slideshow_height='300px'; //SET IMAGE HEIGHT
var pause=3000; //SET PAUSE BETWEEN SLIDE (3000=3 seconds)
var imagepath = "../img/";
var linkspath = "";

var fimages = new Array();
var imlinks = new Array();

fimages[fimages.length] = "billede.jpg,1";// <- 1-tallet bruges som antal visninger på en runde ->
imlinks[imlinks.length] = "http://larryelmore.com/colorg04.htm"
fimages[fimages.length] = "eksperten_logo_new.gif,3";// <- dette billede vises 3 gange på en runde ->
imlinks[imlinks.length] = "http://www.eksperten.dk/"

var preloadedimages=new Array();
  for (p=0;fimages.length>p;p++){
    preloadedimages[p] = new Image();
    preloadedimages[p].src = imagepath + fimages[p].substring(0,fimages[p].indexOf(","));
  }

var fadeimages = new Array();
var imagelinks = new Array();
for(i=0;fimages.length>i;i++){
  num = fimages[i].replace(/.*\,(\d+)$/,"$1");
  for(j=0;num>j;j++){
    fadeimages[fadeimages.length] = imagepath + fimages[i].substring(0,fimages[i].indexOf(","));
    imagelinks[imagelinks.length] = linkspath + imlinks[i];
  }
}

var slidelength = fadeimages.length,curcanvas,curimageindex,actZ=100;
function shuffleArray(a) {
var t=s=0;
  for(var i=0;a.length>i;i++){
  t = Math.floor(Math.random()*a.length);
  s = a[i];
  a[i] = a[t] ;
  a[t] = s;
  }
return a;
}
var ix = new Array();
for(i=0;slidelength>i;i++)ix[i]=i;
ix = shuffleArray(ix);

var OpC = new Array();
var OpC = new Array();
var ie,moz,css3;
function startOpChange(elm,end,tim){
  ie = !!elm.filters;
  moz = elm.style.MozOpacity != undefined;
  css3 = elm.style.opacity != undefined;
  if (!ie && !moz && !css3)return;
  var idx = OpC.length;
    for(var i=0;idx>i;i++){
        if(OpC[i][0]==elm){
          clearInterval(OpC[i][4]);
            idx = i;
            break;
        }
        OpC[idx] = new Array();
    }
  if(idx==0)OpC[idx] = new Array();
   
    if(ie)actOp=elm.filters.alpha.opacity;
    else if(css3)actOp=(elm.style.opacity*100);
    else actOp=(elm.style.MozOpacity*100);
  if (actOp!=end){
    OpC[idx][0]=elm;
    OpC[idx][1]=actOp;
    OpC[idx][2]=end;
    OpC[idx][3]=(end>actOp)?1:-1;
    var delayTime = Math.floor((tim*1000)/Math.abs((actOp-end)));
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}
function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  else if(css3)OpC[idx][0].style.opacity=Math.min(0.99,OpC[idx][1]/100);
  else OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    return;
  }
}

function initSlide(){
  var elm = document.getElementById("stImage");
  ie = !!elm.filters;
  moz = elm.style.MozOpacity != undefined;
  css3 = elm.style.opacity != undefined;
  elm.style.display = 'none';
  var c = document.getElementById('slidecontainer');
  with(c.style){
    position='relative';
    overflow='hidden';
    width=slideshow_width;
    height=slideshow_height;
  }
  if (ie||moz||css3){
    for(i=0;2>i;i++){
      var im = document.createElement('IMG');
      c.appendChild(im);
      with(im.style){
        position='absolute';
        top=left='0px';
        width=slideshow_width;
        height=slideshow_height;
        filter='alpha(opacity=5)';
        MozOpacity='0.05';
        zIndex = ++actZ;      }
      im.id = 'canvas'+i;
      im.src = imagepath + fimages[i].substring(0,fimages[i].indexOf(","));
      im.alt = imagelinks[i];
      im.onclick = function(){location.href = imagelinks[i]};
    }
    startOpChange(im,100,pause/10000);
    setInterval('nextSlide()',pause);
  }else{
    var im = document.createElement('IMG');
    c.appendChild(im);
    with(im.style){
      position='absolute';
      top=left='0px';
      width=slideshow_width;
      height=slideshow_height;
    }
    im.id = "canvas"
    im.src = fadeimages[0];
    im.style.zIndex = 0;
    setInterval("rotateimage()",pause);
  }
  curcanvas="canvas1";
  curimageindex=0;
}

function nextSlide(){
  startOpChange(document.getElementById(curcanvas),5,pause/10000);
  curcanvas = 'canvas' + ((curcanvas=='canvas0')?1:0);
  var im = document.getElementById(curcanvas);
  if(curimageindex+1==slidelength)ix = shuffleArray(ix);
  curimageindex = ++curimageindex%slidelength;
  im.src = fadeimages[ix[curimageindex]];
  im.alt = imagelinks[ix[curimageindex]];
  im.onclick = function(){location.href = imagelinks[ix[curimageindex]]};
  im.style.zIndex += 1;
  startOpChange(im,100,pause/10000); 
}

function rotateimage(){
  var im = document.getElementById('canvas');
  if(curimageindex+1==slidelength)ix = shuffleArray(ix);
  curimageindex = ++curimageindex%slidelength;
  im.src = fadeimages[ix[curimageindex]];
}
window.onload=initSlide;

</script>
</head>

<body>
  <div id="slidecontainer"><img id="stImage" style="filter:alpha(opacity=50);-moz-opacity=0.5;opacity=0.5;"></div>
</body>
</html>
Avatar billede moejensen Nybegynder
25. juni 2005 - 15:51 #10
der er da også tidsstyring på det jeg henviser til :-)

men det ligener ikke helt de samme metoder.
Avatar billede roenving Novice
25. juni 2005 - 15:56 #11
Scriptet er en modifikation af mit oprindelige, så du på de forskellige billeder sætter hvor mange gange, de skal kommer frem i en runde ...
Avatar billede moejensen Nybegynder
25. juni 2005 - 16:01 #12
okay så er det derfor jeg ikke lige kunne fået det til at passe :-)

har du noget bud på hvad jeg skal ændre i dette script: http://webdesign101.dk/javascript/slideshow/slideshow6.php
for at det virker, for det har jeg allerede implementeret i et større system.
Avatar billede moejensen Nybegynder
05. juli 2005 - 10:24 #13
ingen bud?
Avatar billede moejensen Nybegynder
29. juli 2005 - 13:50 #14
stadig ingen bud?
Avatar billede moejensen Nybegynder
15. september 2005 - 22:00 #15
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