Antworten auf deine Fragen:
Neues Thema erstellen

JS: Mouseover-Scroller funktioniert nicht

sMichal

Noch nicht viel geschrieben

Hallo,

nachdem ich nun seit Tagen am "basteln" bin und eigentlich auch keine Ahnung von JS habe, hoffe ich, dass mir hier jemand auf die Sprünge helfen kann...

Ich habe diese hier in meine Seite eingebaut: Schöner scrollen mit MouseOver | Dr. Web Magazin und die Werte für height + width angepasst.

Leider funktioniert das JS nicht, was habe ich falsch gemacht?


Der Code-Ausschnitt:
Code:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<link href="layout.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<script src="scroll.class.js" type="text/javascript"> </script>
 <script type="text/javascript">
     var scroll = new SCROLL(
                              document.getElementById('content'),
                              {
                               'time':   60,
                               'width':  680,
                               'height': 280
                              }
                             );
</script>

Code:
 <div id="mid_col">
   <div class="scroller">
      <p class="arrow" onmouseover="scroll.start(-10)" onmouseout="scroll.stop()" title="Nach oben"></p>
      <p class="bar"></p>
      <p class="arrow" onmouseover="scroll.start(10)" onmouseout="scroll.stop()" title="Nach unten"></p>
    </div>
   <div id="content">
    <p><strong>Haftungsausschluss</strong></p>
    <p class="auto-style28"><strong>Haftung für Inhalte</strong><br />Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte.</p>
    <p class="auto-style28"><br /><strong>Haftung für Links</strong><br />Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.</p>
    <p class="auto-style28"><strong>Haftung für Inhalte</strong><br />Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte.</p>
    <p class="auto-style28"><br /><strong>Haftung für Links</strong><br />Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.</p><p><a href="disclaimer2.html"><img alt="" height="35" src="pictures/nach_rechts.png" style="float: right" width="19" class="auto-style26" /></a><a href="impressum.html"><img alt="" height="35" src="pictures/nach_links.png" style="float: right" width="19" class="auto-style26" /></a></p>
    <p class="auto-style28"><strong>Haftung für Inhalte</strong><br />Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte.</p>
    <p class="auto-style28"><br /><strong>Haftung für Links</strong><br />Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.</p><p><a href="disclaimer2.html"><img alt="" height="35" src="pictures/nach_rechts.png" style="float: right" width="19" class="auto-style26" /></a><a href="impressum.html"><img alt="" height="35" src="pictures/nach_links.png" style="float: right" width="19" class="auto-style26" /></a></p>  
 </div>
  </div>
 </div>


CSS:
Code:
#mid_col {
 float:left; 
 width: 780px;
 min-height:320px;
 height:320px;
 background-color:#d9dadb;
}
 
 
#content {
 margin: 20px;
 text-align: left;
 color: #707173;
 font-family:Arial, Helvetica, sans-serif;
 width:680px;
 height:280px;
 overflow:hidden;
 clip: rect (0, 680px, 300px, 0);
 position: absolute;
}
.scroller {
        float: right;
        width: 10px;
        margin:10px;
      }
      .scroller .arrow {
        border: 1px solid black;
        cursor: pointer;
        padding: 4px;
      }
      .scroller .bar {
        height: 220px;
        margin: 2px;
        border: none;
        padding: 0 2px;
      }

und die "scroll.class.js:

Code:
SCROLL = function(obj, attr) {
  var interval;
  var offset = {
    'top': obj.offsetTop || 0,
    'height': obj.offsetHeight || 0
  };
 
   this.start = function(amount) {
    /* Default setzen */
    attr.top = attr.top || 0;
    attr.width = attr.width || "auto";
    attr.height = attr.height || "auto";
 
      /* Intervall starten */
    interval = setInterval(
                           function() {
                                       move(amount);
                                      },
                           attr.time
                          );
};
 
this.stop = function() {
    if (interval) {
      clearInterval(interval);
    }
  }
  function move(amount) {
    /* Werte refreshen */
    attr.top += amount;
    attr.height += amount;
    offset.top -= amount;
 
 
      /* Grenze überschritten? */
    if (attr.top < 0 || attr.height > offset.height) {
      attr.top -= amount;
      attr.height -= amount;
      offset.top += amount;
      return;
    }
 
 
       /* Object bewegen */
    obj.style.clip = "rect(" + attr.top + "px " + attr.width + "px " + attr.height + "px 0)";
    obj.style.top = offset.top + "px";
  }
}


VG ud Danke schonmal
sMichal
 

kleeaar

zwo-eins-risiko!

AW: JS: Mouseover-Scroller funktioniert nicht

kannst du uns noch nen link auf deine seite geben, dann kann man nämlich besser nachforschen woran es liegt...
Was sagt denn die Fehlerkonsole?
 

sMichal

Noch nicht viel geschrieben

AW: JS: Mouseover-Scroller funktioniert nicht

Leider steht die Seite so nicht online...
Hier ist die momentane Fassung, die nun ausgebaut werden soll... (z.B. das Impressum ist jetzt über 3 Seiten, da kein Scrollbalken erwünscht ist.)
Hoffe, das hilft erstmal, ansonsten versuche ich noch einen Webspace zu organisieren...


Also die Konsole vom IE8 sagt "Objekt erforderlich" und markiert diesen Teil in der .js:
Code:
var offset = {
    'top': obj.offsetTop || 0,
    'height': obj.offsetHeight || 0
  }
 
K

kyle66

Guest

AW: JS: Mouseover-Scroller funktioniert nicht

Hallo,

zunächst einmal darfst du das Javascript erst ausführen, wenn die Seite auch vollständig geladen ist. z.B. Mittels eines onload Event-Händlers.

Quick and Dirty-Lösung:
var scroll = null;
window.onload = function(e) {
scroll = new SCROLL(
document.getElementById('content'),
{
'time': 100,
'width': 680,
'height': 280
}
);
}

Außerdem ist aber noch ein Fehler in der JS-Datei. es muss heißen
if (attr.top < 0 || attr.height < offset.height) {
und nicht
if (attr.top < 0 || attr.height > offset.height) {

Problematisch ist dan noch der top-Margin. Der müsste noch irgendwie mitberechnet werden und in der scc-Angabe solltest du das Leerzeichen zwischen rect und der Klammer entfernen:
clip: rect(0, 680px, 300px, 0);

Dann ist zumindest alles syntaktisch korrekt. Funktionieren tut es bei mir immer noch nicht, i.e. es scrollt, aber der Text unten bleibt abgeschnitten.

Grüße
kyle
 

sMichal

Noch nicht viel geschrieben

AW: JS: Mouseover-Scroller funktioniert nicht

Das geht ja schnell... :)
Danke!

Also das ist jetzt bei mir auch so, es srollt mit abgeschnittenem Text, aber wohl auch endlos ins Nichts?

Wie meinst du das mit dem top-Margin?
Muss ich den im CSS ändern oder im Script aufaddieren?

edit: Margin hat sich erledigt, ich habe ein margin-left im Content draus gemacht und das passt
 
Zuletzt bearbeitet:

cebito

undefined

AW: JS: Mouseover-Scroller funktioniert nicht

Hoffe, das hilft erstmal, ansonsten versuche ich noch einen Webspace zu organisieren...

Kannst du auf diesen Webspace zugreifen, dann mach nen Unterordner und dort deinen Versuch rein, den kannste dann hier verlinken. Wenn nicht, versuchs mal damit: Create a new Fiddle - jsFiddle - Online Editor for the Web (JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML, CSS)

Und noch kurz was, es ist ein Schuss ins eigene Knie, wenn du den content-div bereits im css auf overflow:hidden stellst, Leute, die js deaktiviert haben, bekommen nur ein Stückchen content serviert, der Rest bleibt unsichtbar. Besser ist es, diese Eigenschaft erst per js umzustellen ;)
 

sMichal

Noch nicht viel geschrieben

AW: JS: Mouseover-Scroller funktioniert nicht

Yes, das war es! :)
Habe im CSS das Overflow rausgenommen und siehe da es funzt :)

Vielen dank Euch allen!

Jetzt scrollt es nur noch ins endlose nichts...
 

sMichal

Noch nicht viel geschrieben

AW: JS: Mouseover-Scroller funktioniert nicht

habe nun versucht, das Ganze nun auch horizontal zu bekommen, aber ich kriegs nicht gebacken...

Hier mein Versuch.

Der Debugger vom IE8 sagt:

"Das Objekt unterstützt diese Eigenschaft oder Methode nicht." (test.html, Zeilen 76 und 79; jeweils Zeichen 1)

Kann mir hier jemand helfen, was ich falsch mache?

Danke un VG
sMichal
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.496
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben