qwertyMedlem sedan jan. 2001391 inlägg Tja!
Detta är mitt problem:
Jag läser in en textfil och skriver ut den i en tabell som ligger i ett lager. Det jag skulle vilja är att texten rullar runt. Uppifrån och ner, runt, runt. Altså när filen är slut ska den börja om igen.
Det måste funka i både ns och ie.
Enormt tacksam för svar och tips.
------------------
Qwerty
Den som provar han testar...
JohnsenMedlem sedan juli 2000836 inlägg Visa vad du har för kod nu, så skall vi nog få texten att rulla.
------------------
- J-O-H-N-S-E-N -
------------------
qwertyMedlem sedan jan. 2001391 inlägg Jag hittade detta. Mitt problem är dock att eftersom jag läser in texten från en textfil kan jag ju inte ange höjden på texten osv...det funkar inte riktigt som det ska i alla fall. Det kommer med några rader men sen går det liksom inte mer. Skulle man kunna läsa in antalet rader på nåt sätt och stoppa in det i scriptet så kanske det skulle gå.
Hittade scriptet på: http://tmdata.x.se/webdesignskolan/javascripts/newsscroller/textrullare1.htm
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Dion (yobo42@hotmail.com) -->
<!-- Web Site: [url="http://www.iinet.net.au/~biab/"]http://www.iinet.net.au/~biab/[/url] -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! [url="http://javascript.internet.com"]http://javascript.internet.com[/url] -->
<!-- Begin
// byt sökvägen nedan om du lägger bilden i annan mapp
var blank = "blank.gif";
topedge = 90; // avstånd från sidans topp
leftedge = 360; // avstånd från vänster
boxheight = 200; // höjd på textboxen
boxwidth = 100; // bredd på textboxen
scrollheight = 240; // totala höjden på all text som scrollas
function scrollnews(cliptop) {
if (document.layers) {
newsDiv = document.news;
newsDiv.clip.top = cliptop;
newsDiv.clip.bottom = cliptop + boxheight;
newsDiv.clip.left = 0;
newsDiv.clip.right = boxwidth + leftedge;
newsDiv.left = leftedge;
newsDiv.top = topedge - cliptop;
}
else {
newsDiv = news.style;
newsDiv.clip = "rect(" + cliptop + "px " + (boxwidth + leftedge) + "px " +
(cliptop + boxheight) + "px 0px)";
newsDiv.pixelLeft = leftedge;
newsDiv.pixelTop = topedge - cliptop;
}
cliptop = (cliptop + 1) % (scrollheight + boxheight);
newsDiv.visibility='visible';
setTimeout("scrollnews(" + cliptop + ")", 150);
}
// End -->
</script>
</head>
<body bgcolor="#FFFFFF" OnLoad="scrollnews(0)">
<%
Set A = CreateObject("Scripting.FileSystemObject")
Set B = A.OpenTextFile ("c:\inetpub\wwwroot\nyheter\news.txt")
Nyheter = B.ReadAll
B.close
%>
<div id="news" style="position:absolute; visibility:visible; left:359px; top:89px; width:184px; height:208px; z-index:1; overflow: hidden">
<table border=0 cellpadding=1 cellspacing=0 bgcolor="white" align="center" width="100" height="200">
<tr>
<td>
<script language="javascript">
document.write('<img src=' + blank + ' width=1
height='+boxheight+'>');
</script>
</td>
</tr>
<tr>
<td> <!-- Din text skriver du här -->
<p><%=nyheter%>
<!-- Slut på området med text --> </p>
</td>
</tr>
<tr>
<td>
<script language="javascript">
document.write('<img src=' + blank + ' width=1
height='+boxheight+'>');
</script>
</td>
</tr>
</table>
</div>
</body>
</html>
------------------
Qwerty
Den som provar han testar...
JohnsenMedlem sedan juli 2000836 inlägg Jag skulle skippat tabellen och kört med två lager.
Kolla på nedanstående kod, den räknar ut höjden på det innre lagret.
Din textfil kan alltså vara hur lång eller hur kort som helst, när botten på textfilen nått toppen på fönstret börjar den om igen.
Jag gjorde skriptet i tre delar för att täcka in IE4+ NN4+ och NS6, det går säkert att optimera om man vill.
<html>
<head>
<script type="text/javascript" language="JavaScript">
<!--
function move() {
if(document.all){
offsetHeight= document.all("innehall").offsetHeight;
pos= parseInt(document.all("innehall").style.top);
if(pos>-offsetHeight){document.all("innehall").style.top=pos-5;}
else{document.all("innehall").style.top= document.all("fonster").offsetHeight;}
}
else if(document.layers){
offsetHeight= document.layers["fonster"].document.layers["innehall"].document.height;
pos= document.layers["fonster"].document.layers["innehall"].top;
if(pos>-offsetHeight){document.layers["fonster"].document.layers["innehall"].top=pos-5;}
else{document.layers["fonster"].document.layers["innehall"].top= document.layers["fonster"].clip.height;}
}
else if(navigator.userAgent.indexOf("Netscape6")>0){
offsetHeight= document.getElementById("innehall").offsetHeight;
pos= parseInt(document.getElementById("innehall").style.top);
if(pos>-offsetHeight){document.getElementById("innehall").style.top=pos-5;}
else{document.getElementById("innehall").style.top= document.getElementById("fonster").offsetHeight;}
}
scrolla = setTimeout("move()", 100);
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" onload="move();">
<%
Set A = CreateObject("Scripting.FileSystemObject")
Set B = A.OpenTextFile ("c:\inetpub\wwwroot\nyheter\news.txt")
Nyheter = Replace(B.ReadAll, vbCrLf, "<br>")
B.close
%>
<div id="fonster" style="position:absolute; left:300; top:100; width:200; height:200; overflow:hidden; clip:rect(0,200,200,0);">
<div id="innehall" style="position:absolute;">
<%=nyheter%>
</div>
</div>
</body>
</html>
------------------
- J-O-H-N-S-E-N -
------------------
qwertyMedlem sedan jan. 2001391 inlägg Stort tack för hjälpen!!
super-hygglo, asså.
Efter lite pill funkar det perfekt.
En sak bara:
I textfilen som jag "rullar" finns html-taggar typ:
<span class = "rubrik">Rubriken</span>
Dessa sätter jag automatiskt dit när man matar in texten i textfilen via ett formulär.
"css-mallarna" finns definierade i head-taggen enligt följande:
<style type="text/css">
<!--
.brodtext { font-family: Arial, Helvetica, sans-serif; font-size: 9pt; font-weight: normal}
.rubrik { font-family: Arial, Helvetica, sans-serif; font-size: 11pt; font-weight: bold}
-->
</style>
Men när texten rullar blir bara rubrikerna feta i explorer och inte i netscape. Har hämtat in denna textfil tidigare på andra sidor (dock ej rullande) och då lyckats få rubrikerna feta i båda läsarna. Vad kan vara felet?
------------------
Qwerty
Den som provar han testar...
JohnsenMedlem sedan juli 2000836 inlägg Phu, ja...
NN4+ är ju lite kinkig när det gäller nya lager i lager. I NS6 funkar det utmärkt.
Det enda jag kan komma på är att fixa det i ASP'n.
<%
Set A = CreateObject("Scripting.FileSystemObject")
Set B = A.OpenTextFile ("c:\inetpub\wwwroot\nyheter\news.txt")
Nyheter = Replace(B.ReadAll, vbCrLf, "<br>")
Nyheter = Replace(Nyheter,"<span class=""rubrik"">","<span style=""font-family: Arial, Helvetica, sans-serif; font-size: 11pt; font-weight: bold"">")
Nyheter = Replace(Nyheter,"<span class=""brodtext"">","<span style=""font-family: Arial, Helvetica, sans-serif; font-size: 9pt; font-weight: normal"">")
B.close
%>
Då funkar det i NN4+ oxå.
------------------
- J-O-H-N-S-E-N -
------------------