Click to See Complete Forum and Search --> : increase text scroll speed


dapper
07-26-2003, 11:01 AM
Does anyone know how to increase the speed that text will scroll for the following script; the way it is now is VERY slow:

<!-- THREE STEPS TO INSTALL LINE SCROLLER:

1. Copy the coding into the HEAD of your HTML document
2. Add the onLoad event handler into the BODY tag
3. Put the last coding into the BODY of your HTML document -->

<!-- STEP ONE: Paste this code into the HEAD of your HTML document -->

<HEAD>

<SCRIPT LANGUAGE="JavaScript1.2">
<!-- Original: Ernst Straka (ernst.straka@central-europe.basf.org) -->
<!-- Web Site: http://www.rs-systems.at/straka -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var l1 = 0; // left of ticker in pixel, or 0 to position relative
var t1 = 0; // top of ticker in pixel, or 0 to position relative
var w1 = 400; // width of ticker in pixel
var ie = document.all ? true : false;
var first = true;
var l2 = l1 + w1;
var l3 = l1 - l2;
var l = l2;
function tickinit() {
if (ie) {
if (l1 == 0 && t1 == 0) {
pos = document.all['tickpos'];
l1 = getLeft(pos);
t1 = getTop(pos);
}
ticktext.style.posTop = t1;
}
else {
if (l1 == 0 && t1 == 0) {
pos = document.anchors['tickpos'];
l1 = pos.x;
t1 = pos.y;
}
document.ticktext.pageY = t1;
}
l2 = l1 + w1;
l3 = l1 - l2;
l = l2;
setInterval('tick()', 10);
}
function getLeft(ll) {
if (ll.offsetParent)
return (ll.offsetLeft + getLeft(ll.offsetParent));
else
return (ll.offsetLeft);
}
function getTop(ll) {
if (ll.offsetParent)
return (ll.offsetTop + getTop(ll.offsetParent));
else
return (ll.offsetTop);
}
function tick() {
l = l - 0.5;
if (l < l3) l = l2;
cl = l1 - l;
cr = l2 - l;
if (ie) {
ticktext.style.posLeft = l;
ticktext.style.posTop = t1;
ticktext.style.clip = "rect(auto "+cr+"px auto "+cl+"px)";
if (first) ticktext.style.visibility = "visible";
}
else {
document.ticktext.pageX = l;
document.ticktext.clip.left = cl;
document.ticktext.clip.right = cr;
if (first) document.ticktext.visibility = "show";
}
first = false;
}
// End -->
</script>
</HEAD>

<!-- STEP TWO: Insert the onLoad event handler into your BODY tag -->

<BODY OnLoad="tickinit()">

<!-- STEP THREE: Copy this code into the BODY of your HTML document -->

<a name="tickpos"> </a>

<div id="ticktext" style="position:absolute;font-family:arial;font-size:14pt;visibility:hidden;">
<nobr>Doesn't this message scroller look great? You can even insert links like this: <a href="http://www.yahoo.com" target="_blank">yahoo.com</a> Now it repeats.</nobr>
</div>

<p><center>
<font face="arial, helvetica" size="-2">Free JavaScripts provided<br>
by <a href="http://javascriptsource.com">The JavaScript Source</a></font>
</center><p>

<!-- Script Size: 2.48 KB -->

======================================
Many Thanks!

karayan
07-26-2003, 03:08 PM
Off the top of my head, and WITHOUT having studied the code in detail to see how it works, I would say that you may want to play with the following statement:

setInterval('tick()', 10);


in the code. That "10" in it makes something happen every 10ms. If this is the ticker animation, playing with the 10 may change the speed.

Let us know if it worked.

karayan
07-26-2003, 03:20 PM
If my suggestion above works, it would be because you will be changing the timing. Of course, you don't have much control with that: 1, 2, 3, 4,...., 10ms is not much control. The correct way to change speed is to modify the timing AND the change step (how much the ticker moves), but that would require studying the code.

dapper
07-26-2003, 03:27 PM
Thanks. Changing the Interval down to "1" does increase the speed a SMALL amount. It still takes almost 90 seconds for the scroll to move across the entire webpage; down from about 2 minutes before.
Thanks again.

karayan
07-26-2003, 04:45 PM
That doesn't answer your question, then. One would think that reducing the interval down to 1 would make the whole thing 10 times faster. Hmmm....

I'll see if I can figure out the code.

karayan
07-26-2003, 05:13 PM
OK, it looks like the statement:

l = l - 0.5;


controls the step by wich the ticker moves to the left. If you make the 0.5 greater (say 1 or 2), it should move faster. You might begin seeing animation artifacts (like jumping) if you try higher values. You can still play with the tick interval, but I'd leave it at 10.

Let us know how it worked.

dapper
07-26-2003, 05:24 PM
You got it! Boosting the 0.5 value to 3.0 works perfectly; with only very minimal "jumping".
Thanks!