13. april 2006 - 19:17
Der er
17 kommentarer og 2 løsninger
Problemer med fade in funktion (iframe)
Hejsa Jeg har prøvet at lave en "fade in" funktion på et iframe. Men det virker sgu ikke rigtigt:-( Nogen der kan hjælpe? ------------------------------------------------------- <html> <head> <style> .knap{ display:inline; width:auto; cursor:pointer; border:1px solid #000; } </style> <script type="text/javascript"> var counter = 0; var mozilla = 10; var explorer = 100; function ChangeIframe(page){ var iframe = document.getElementById("FadeIframe"); if(counter<=10){ mozilla = mozilla-0.1; explorer = explorer-10; iframe.style.MozOpacity= ""+filter+""; iframe.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity="+explorer+")"; counter++ windows.setInterval("ChangeIframe();", 100); } else { iframe.src = "side2.html"; } } </script> </head> <body> <div class="knap" onClick="ChangeIframe('iframe.html');">Side 1</div> <div class="knap" onClick="ChangeIframe('side2.html');">Side 2</div> <br /><br /> <iframe src="iframe.html" id="FadeIframe"></iframe> </body> </html> ---------------------------------------------
Annonceindlæg fra Thales
13. april 2006 - 19:40
#1
.filter skal du bruge med forsigtighed (for det lægger alle browsere ned med undtagelse af IE !-), og i IE skal du bruge: if(iframe.filters) iframe.filters.alpha.opacity = newOpacity; -- til andre kan du f.eks. iframe.style.MozOpacity = newOpacity/100; iframe.style.KhtmlOpacity = newOpacity/100; iframe.style.opacity = newOpacity/100;
13. april 2006 - 20:00
#2
Hvad er newOpacity?
13. april 2006 - 20:13
#3
Den nye værdi, f.eks. <script type="text/javascript"> var op = 100; function ChangeIframe(page){ var iframe = document.getElementById("FadeIframe"); op -= 10; if(op>=0){ if(iframe.filters) iframe.filters.alpha.opacity = op; iframe.style.MozOpacity = op/100; iframe.style.KhtmlOpacity = op/100; iframe.style.opacity = op/100; setInterval("ChangeIframe();", 100); } else { iframe.src = page; } } </script>
14. april 2006 - 13:05
#4
Den siger: sti/til/fil/undefined er ikke defineret, kontroller venligst stien.
14. april 2006 - 19:04
#5
Det er som om at variablen "page" ikke bliver defineret når setInterval() køres...?
15. april 2006 - 00:04
#6
sådan? <html> <head> <style> .knap{ display:inline; width:auto; cursor:pointer; border:1px solid #000; } </style> <script type="text/javascript"> var op = 100; function ChangeIframe(page){ var iframe = document.getElementById("FadeIframe"); op -= 10; if(op>=0){ if(iframe.filters)iframe.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+op+")"; iframe.style.MozOpacity = op/100; iframe.style.KhtmlOpacity = op/100; iframe.style.opacity = op/100; setTimeout("ChangeIframe('"+page+"');", 100); } else { iframe.src = page; fadeup(); } } function fadeup(){ iframe=document.getElementById("FadeIframe"); op+=10; if(op<=100){ if(iframe.filters)iframe.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+op+")"; iframe.style.MozOpacity = op/100; iframe.style.KhtmlOpacity = op/100; iframe.style.opacity = op/100; setTimeout("fadeup();", 100); } } </script> </head> <body> <div class="knap" onClick="ChangeIframe('2.html');">Side 1</div> <div class="knap" onClick="ChangeIframe('3.html');">Side 2</div> <br /><br /> <iframe src="iframe.html" id="FadeIframe"></iframe> </body> </html>
15. april 2006 - 00:06
#7
hmm, det kan godt det har en bedre effekt (synsmæssig) hvis fadeup fjernes fra function ChangeIframe(page){ og sættes ind i iframe tagget som her: <iframe onload="fadeup();" src="iframe.html" id="FadeIframe"></iframe>
15. april 2006 - 00:10
#8
hmm, det kan godt det har ... -> Hmm, det kan godt være, at det har ...
15. april 2006 - 00:50
#9
rettede også setInterval til en setTimeout... setInterval blev jo ikke clearet - så det var en uendelig løkke...
15. april 2006 - 09:36
#10
og i et script: <html> <head> <style> .knap{ display:inline; width:auto; cursor:pointer; border:1px solid #000; } </style> <script type="text/javascript"> o=100; function fade(p,t){ i=document.getElementById("FadeIframe"); o=(t==0)?o-10:o+10; if(((o>0)&&(t==0))||((o<100)&&(t==1))){ if(i.filters)i.style.filter="progid:DXImageTransform.Microsoft.Alpha(Opacity="+o+")"; i.style.MozOpacity = o/100; i.style.KhtmlOpacity = o/100; i.style.opacity = o/100; setTimeout("fade('"+p+"','"+t+"');", 100); }else if(p!=""){ i.src=p; } } </script> </head> <body> <div class="knap" onClick="fade('2.html',0);">Side 1</div> <div class="knap" onClick="fade('3.html',0);">Side 2</div> <br /><br /> <iframe onload="fade('',1);" src="2.html" id="FadeIframe"></iframe> </body> </html>
16. april 2006 - 11:49
#11
Mange tak for det clemens, har dog ikke lige tid til at kigge på det lige nu, men jeg vender tilbage :-) Læg evt. et svar med det samme, så kan jeg altid afvise hvis det ikke virker.. God påske!
16. april 2006 - 12:01
#12
[ Læg evt. et svar med det samme, så kan jeg altid afvise hvis det ikke virker.. ] Ok, roenving lægger du ikke lige et også, så deler vi, hvis det virker... [ God påske! ] - I lige måde :)
17. april 2006 - 07:38
#13
Oki '-)
17. april 2006 - 22:28
#14
Nu får i sgu bare pointene - jeg stoler på jer i tager jo sjældent fejl ;o)
17. april 2006 - 22:42
#15
hehe ... :P ellers får du dem lige tilbage ;)
17. april 2006 - 22:43
#16
- og tak for point :)
18. april 2006 - 01:57
#17
og karma :)
18. april 2006 - 18:45
#18
Selv tak ;-)
23. april 2006 - 02:54
#19
-- også jeg takker ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling