webForumDet fria alternativet

Rullande text!!(hjälp mig...)

5 svar · 655 visningar · startad av qwerty

qwertyMedlem sedan jan. 2001391 inlägg
#1

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
#2

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
#3

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
#4

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
#5

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
#6

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 -
------------------

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)