Mirko: Hilfe bei Unterbrechung eines laufenden Scriptes ?

Hallo, ich habe ein Problem. Ich hab auf meiner Seite ein Javascript eingebaut, mit dem das Menü scrollt. Ich habe das Script von einer Downloadseite, auf der man solche Scripte zum Einbau auf der Homepage rutnerladen kann. Ich habe die Schrift umgeändert und noch einiges ein wenig verbessern können, auch mit Hilfe dieser Seite hier. Doch ich kenne mich mit Java-Script nicht gut aus.

Jetzt wollte ich einen Button auf meiner Seite einbauen, mit der ich das Scrollen ein und wieder ausschalten kann. Ich kriege das einfach nicht hin. Kann mir jemand helfen. Hier ist der Code für die Navigation:

<html> <STYLE type=text/css> #slide { Position: Absolute; Left: 0; Top: 0; Visibility: Visible; } A:LINK {color:#3300FF} A:VISITED {text-decoration: none;} TD  {font-family:times new roman;} BODY  {Margin-Left: 0;} </STYLE> <span ID="slide"> <table CELLSPACING="0"  BORDER="0" CELLPADDING="0" ALIGN="left" > <TD HEIGHT=100></TD> <TR> <TD><A href="http://www.odenwald-helden.de/Start/start.html"><img src="http://www.odenwald-helden.de/Heim.gif" alt="Heimstatt" BORDER="0"></A></TD> </TR> <tr> <td><A href="http://www.odenwald-helden.de/start/DSA/dsa.html"><img src="http://www.odenwald-helden.de/DSA.gif" alt="DSA ?" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Helden/helden.html"><img src="http://www.odenwald-helden.de/Helden.gif" alt="Helden" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Regeln/regeln.html"><img src="http://www.odenwald-helden.de/Regeln.gif" alt="Regeln" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Bibliothek/bibliothek.html"><img src="http://www.odenwald-helden.de/Bibliothek.gif" alt="Bibliothek" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Seelenmuehle/seelenmuehle.html"><img src="http://www.odenwald-helden.de/Seele.gif" alt="Seelenmühle" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Taverne/taverne.html"><img src="http://www.odenwald-helden.de/Taverne.gif" alt="Taverne" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Impressum/impressum.html"><img src="http://www.odenwald-helden.de/Impressum.gif" alt="Impressum" BORDER="0"></A></td> </tr> <tr> <td><A href="http://www.odenwald-helden.de/start/Sitemap/sitemap.html"><img src="http://www.odenwald-helden.de/Sitemap.gif" alt="Sitemap" BORDER="0"></A></td> </tr> </table> </span>

<script LANGUAGE="JavaScript">

self.onError=null;

currentX = currentY = 0;         whichIt = null;         lastScrollX = 0; lastScrollY = 0;

NS = (document.layers) ? 1 : 0;         IE = (document.all) ? 1: 0;

function heartBeat() {

if(IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; }             if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; }

if(diffY != lastScrollY) {                         percent = .1 * (diffY - lastScrollY);                         if(percent > 0) percent = Math.ceil(percent);                         else percent = Math.floor(percent);                                         if(IE) document.all.slide.style.pixelTop += percent;                                         if(NS) document.slide.top += percent;                         lastScrollY = lastScrollY + percent;             }                 if(diffX != lastScrollX) {                         percent = .1 * (diffX - lastScrollX);                         if(percent > 0) percent = Math.ceil(percent);                         else percent = Math.floor(percent);                         if(IE) document.all.slide.style.pixelLeft += percent;                         if(NS) document.slide.left += percent;                         lastScrollX = lastScrollX + percent;                 }         }

function checkFocus(x,y) {         var totalY, totalX;                 floatx = document.slide.pageX;                 floaty = document.slide.pageY;                 floatwidth = document.slide.clip.width;                 floatheight = document.slide.clip.height;

if(20 == 0) totalY = floatheight;                         else totalY = 25;                         if(0 == 0) totalX = floatwidth;                         else totalX = 0;                 if( (x > floatx && x < (floatx+totalX)) && (y > floaty && y < (floaty+totalY))) return true;                 else return false;         }

function grabIt(e) {                 if(IE) {                         whichIt = event.srcElement;                         while (whichIt.id.indexOf("slide") == -1) {                                 whichIt = whichIt.parentElement;                                 if (whichIt == null) { return true; }                     }                         whichIt.style.pixelLeft = whichIt.offsetLeft;                     whichIt.style.pixelTop = whichIt.offsetTop;                         currentX = (event.clientX + document.body.scrollLeft);                         currentY = (event.clientY + document.body.scrollTop);

if(20 == 0) totalY = whichIt.style.pixelHeight;                         else totalY = 20;                         if(0 == 0) totalX = whichIt.style.pixelWidth;                         else totalX = 0;                         if(!(event.clientX > whichIt.offsetLeft && event.clientX < whichIt.offsetLeft + totalX) ||                         !(currentY > whichIt.offsetTop && currentY < whichIt.offsetTop + totalY)) whichIt = null;                 } else {                 window.captureEvents(Event.MOUSEMOVE);                 if(checkFocus (e.pageX,e.pageY)) {                         whichIt = document.slide;                         FloatTouchedX = e.pageX-document.slide.pageX;                         FloatTouchedY = e.pageY-document.slide.pageY;                 }                 }             return true;         }

function moveIt(e) {                 if (whichIt == null) { return false; }                 if(IE) {                     newX = (event.clientX + document.body.scrollLeft);                     newY = (event.clientY + document.body.scrollTop);                     distanceX = (newX - currentX);    distanceY = (newY - currentY);                     currentX = newX;    currentY = newY;                     whichIt.style.pixelLeft += distanceX;                     whichIt.style.pixelTop += distanceY;                         if(whichIt.style.pixelTop < document.body.scrollTop) whichIt.style.pixelTop = document.body.scrollTop;                         if(whichIt.style.pixelLeft < document.body.scrollLeft) whichIt.style.pixelLeft = document.body.scrollLeft;                         if(whichIt.style.pixelLeft > document.body.offsetWidth - document.body.scrollLeft - whichIt.style.pixelWidth - 20) whichIt.style.pixelLeft = document.body.offsetWidth - whichIt.style.pixelWidth - 20;                         if(whichIt.style.pixelTop > document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5) whichIt.style.pixelTop = document.body.offsetHeight + document.body.scrollTop - whichIt.style.pixelHeight - 5;                         event.returnValue = false;                 } else {                         whichIt.moveTo(e.pageX-FloatTouchedX,e.pageY-FloatTouchedY);                 if(whichIt.left < 0+self.pageXOffset) whichIt.left = 0+self.pageXOffset;                 if(whichIt.top < 0+self.pageYOffset) whichIt.top = 0+self.pageYOffset;                 if( (whichIt.left + whichIt.clip.width) >= (window.innerWidth+self.pageXOffset-17)) whichIt.left = ((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;                 if( (whichIt.top + whichIt.clip.height) >= (window.innerHeight+self.pageYOffset-17)) whichIt.top = ((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17;                 return false;                 }             return false;         }

function dropIt() {                 whichIt = null;             if(NS) window.releaseEvents (Event.MOUSEMOVE);             return true;         }

if(NS) {                 window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);                 window.onmousedown = grabIt;                 window.onmousemove = moveIt;                 window.onmouseup = dropIt;         }         if(IE) {                 document.onmousedown = grabIt;                 document.onmousemove = moveIt;                 document.onmouseup = dropIt;         }

if(NS || IE) action = window.setInterval("heartBeat()",1);

</script>

</html>

Ich danke schon mal im voraus für die Hilfe !!!

  1. hi,

    Ich hab auf meiner Seite ein Javascript eingebaut, mit dem das Menü scrollt.

    klingt extrem nervig.

    Hier ist der Code für die Navigation:

    nein, dass ist der code einer kompletten verdammten html-seite.
    bitte lies diesbezüglich </faq/#Q-07c>.

    Jetzt wollte ich einen Button auf meiner Seite einbauen, mit der ich das Scrollen ein und wieder ausschalten kann.

    auf den ersten blick würde ich sagen, dein script verwendet setInterval(), um eine funktion immer wieder auszuführen.
    schau dir in selfhtml die erklärung zu setInterval() an, um heruaszufinden, wie du dieses interval auch wieder stoppen/unterbrechen kannst.

    gruss,
    wahsaga

    1. Es war nicht die ganze Seite. hab ausversehen das menü mit reinkopiert.

      Du hast mir aber sehr geholfen. Damit hab ich das Problem gelöst und schaffe den Rest jetzt alleine.

      Vielen Dank !!!