webForumDet fria alternativet

Fadning av bilder

3 svar · 293 visningar · startad av joohn

joohnMedlem sedan jan. 200463 inlägg
#1

Man hade det här först


<script language=\"javascript\" type=\"text/javascript\" src=\"js/mozInnerHTML.js\"></script>

<!-- Använder sig av mozInnerHTML från [url]http://webfx.eae.net/[/url] -->
<script language="javascript" type="text/javascript" src="js/dtdfade.js"></script>

<script language="javascript" type="text/javascript">

<!--

picArray = new Array("fader_pic_adresser_ver2.gif", "fader_pic_vitklass.gif", "fader_pic_vi_har.gif");
linkArray = new Array("http://mattiasnordin.net", "http://mattiasnordin.net", "http://mattiasnordin.net");
createSlideShow( linkArray, "_blank", picArray, "http://mattiasnordin.net/ju-jutsu/designen/", 420, 110, 1500, 1000, 2);
/*
Parametrar:
1) Array med länkar
2) target. ("_blank" för nytt fönster)
3) Array med bilder
4) Basadress till bilderna. Alt. lämna denna tom ("") och använd
full adress för parameter 3
5) Bredd
6) Höjd
7) Hur länge varje bild ska visas (millisekunder)
8) Hur lång tid en övergång ska ta
9) Hur många bilder som ska förladdas innan övergångarna börjar 
(Första bilden visas fram till dess)
*/

--></script>

tyckte att det skulle verka mer praktiskt med att den istället söker efter en mapp där den tar med alla bilder som finns där.
Så frågade om hjälp och man fick det här


<%
Dim bildmapp : bildmapp="photo/" 'Din mapp med dina bilder

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Server.Mappath(bildmapp))
set Files = Folder.Files

	For each Item In Files
		Select Case LCase(Right(Item.Name, 3))  'Kollar att det är bilder
		case "bmp","jpg","gif","png"
			myImages = myimages & """"& bildmapp & Item.Name &""","
		end select
	Next

Set FSO = nothing
myImages  = left(myImages , len(myImages) - 1) 'Tar bort sista kommatecknet för att inte få javascriptfel

Response.Write "picArray = new Array("& myImages &");"& vbcr 'Skriver ut det hela

%>

hur kan man behålla fadeeffekten från javascriptet?

picArray = new Array("fader_pic_adresser_ver2.gif", "fader_pic_vitklass.gif", "fader_pic_vi_har.gif");
linkArray = new Array("http://mattiasnordin.net", "http://mattiasnordin.net", "http://mattiasnordin.net");
createSlideShow( linkArray, "_blank", picArray, "http://mattiasnordin.net/ju-jutsu/designen/", 420, 110, 1500, 1000, 2);

för såhär har jag nu:


<script language=\"javascript\" type=\"text/javascript\" src=\"js/mozInnerHTML.js\"></script>

<!-- Använder sig av mozInnerHTML från [url]http://webfx.eae.net/[/url] -->
<script language="javascript" type="text/javascript" src="js/dtdfade.js"></script>

<%
Dim bildmapp : bildmapp="photo/" 'Din mapp med dina bilder

Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Server.Mappath(bildmapp))
set Files = Folder.Files

	For each Item In Files
		Select Case LCase(Right(Item.Name, 3))  'Kollar att det är bilder
		case "bmp","jpg","gif","png"
			myImages = myimages & """"& bildmapp & Item.Name &""","
		end select
	Next

Set FSO = nothing
myImages  = left(myImages , len(myImages) - 1) 'Tar bort sista kommatecknet för att inte få javascriptfel

Response.Write "picArray = new Array("& myImages &");"& vbcr 'Skriver ut det hela

%>	

/*
Parametrar:
1) Array med länkar
2) target. ("_blank" för nytt fönster)
3) Array med bilder
4) Basadress till bilderna. Alt. lämna denna tom ("") och använd
   full adress för parameter 3
5) Bredd
6) Höjd
7) Hur länge varje bild ska visas (millisekunder)
8) Hur lång tid en övergång ska ta
9) Hur många bilder som ska förladdas innan övergångarna börjar 
   (Första bilden visas fram till dess)
*/

--></script>

sen undrar jag också om det går att ändra från auto till att man själv kan klicka next eller back.

Jesper TMedlem sedan nov. 20017 058 inlägg
#2

Var vänlig och klistra inte in ASP-kod i detta forum utan endast javascript-kod.

Det kan också vara smart att bifoga .js-filen...

joohnMedlem sedan jan. 200463 inlägg
#3

Oh ber om ursäkt.

Här är dtdfade.js i alla fall


numPics=0;

function createSlideShow( linkArray, linkTarget, picArray, picBase, picWidth, picHeight, frameTime, interFrameTime, numpreload){

if (linkArray.length != picArray.length)
  alert("Fel! \n\n Inte lika många länkadresser som bilder! Rätta till felet innan du använder slideshowen.")
if (!picBase) picBase="";

__frameTime = frameTime;
__interFrameTime = interFrameTime;
var __plArray=new Array();
var outHTML = "";

outHTML += "<style type=\"text/css\"> slideLayer, slideImg {width: "+ picWidth +"px; height: "+ picHeight +"px; position: absolute; left: 0px; top: 0px;} slideLayer {position: absolute;} </style>"

outHTML += "<div style=\"position: relative;\">"

numPics=linkArray.length;

for (i=0;i<linkArray.length;i++){
  outHTML += "<div style=\"visibility: hidden; position: absolute; left: 0px; top: 0px;\" id=\"slidelayer" + i + "\" class=\"slideLayer\" ><a href=\"" + linkArray[i] + "\" target=\"" + linkTarget+ "\" ><img border=\"0\" src=\"" + picBase + picArray[i] + "\" class=\"slideImg\"></a></div>";
}

outHTML += "</div>"

document.write (outHTML);

for (i=0;i<Math.min(numPics, numpreload);i++){
  __plArray[i] = new Image();
  __plArray[i].src = linkArray[i];
}

doSlide();
//window.onload=function() {doSlide();};
}

function setOpacity(elm, ratio){
if (ratio<0) ratio=0;
if (ratio>100) ratio=100;

if (document.all){
  if (ratio==100)
    elm.style.filter = "";
  else
    elm.style.filter = "Alpha(opacity=" + parseInt(ratio) + ")";
}

if (window.sidebar){
    elm.style.MozOpacity = ratio / 100;
}

}

var activePage=0, inactivePage=0, isInter=0,__frameTime=1000,__interFrameTime=100;
var opsteps=20;
var opstate=100;

function doSlide(){
  if (isInter==1){
    document.getElementById("slidelayer" + inactivePage).style.zIndex = 0;
    document.getElementById("slidelayer" + inactivePage).style.visibility = "visible";
    inactivePage = activePage;
    activePage = (activePage + 1) % numPics;
    opstate=0;
    setOpacity( document.getElementById("slidelayer" + activePage), opstate );
    document.getElementById("slidelayer" + activePage).style.visibility = "visible";
    document.getElementById("slidelayer" + inactivePage).style.zIndex = 1;
    document.getElementById("slidelayer" + activePage).style.zIndex = 2;

    isInter=2;
  }

  if (isInter==2){
    opstate = opstate + 100 / opsteps;
//    window.status = document.getElementById("slidelayer" + inactivePage).style.visibility;
    setOpacity( document.getElementById("slidelayer" + activePage), opstate );

    if (opstate >= 100){
      isInter=0;
      document.getElementById("slidelayer" + inactivePage).style.visibility = "hidden";
      setTimeout("doSlide();",__frameTime);
    }else{
      setTimeout("doSlide();",__interFrameTime / opsteps)
    }
  }else{
//    setOpacity(document.getElementById("slidelayer" + activePage),100);
    document.getElementById("slidelayer" + activePage).style.visibility = "visible";
    isInter=1;
    setTimeout("doSlide();", __frameTime);
  }
//  window.status = isInter + " " + activePage + " " + opstate;
//  window.status = 
}
joohnMedlem sedan jan. 200463 inlägg
#4

problemet löst.

376 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
121 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
127 ms — hämta inlägg (db)
125 ms — hämta bilagor (db)