Autor |
Nachricht |
Sejee
Threadersteller
Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 11:16
Titel Javascript - automatisch Scrollen in div (nicht ganzer Body) |
|
|
Hallo
Wahrscheinlich ist das für euch eine Kleinigkeit!
Ich habe folgenden Javascript Code, um eine Html Seite bei Mausberührung automatisch scrollen zu lassen.
Der Code scrollt den kompletten Body und das funktioniert auch wunderbar.
Allerdings möchte ich nur den Inhalt eines divs scrollen und nicht den kompletten Body! Was muss ich umschreiben, damit ich auf diese Art einen div scrollen kann?
Habe schon alles mögliche probiert und stundenlang gesucht aber bin ein absoluter Anfänger in Javascript.
Bitte bitte helft mir, ich bin am verzweifeln.
Hier der Code:
<html><head><script type="text/javascript">
<!--
function SymError()
{
return true;
}
window.onerror = SymError;
var SymRealWinOpen = window.open;
function SymWinOpen(url, name, attributes)
{
return (new Object());
}
window.open = SymWinOpen;
//-->
</script>
<script language="javascript1.2">
<!--
// Parameter
var sense1 = 20; // Sensibilitaetszone 1 (in
var sense2 = 10; // Sensibilitaetszone 2 (in
var sense3 = 1 // Sensibilitaetszone 3 (in
var speed1 = 3; // Scrollgeschwindigkeit in Zone 1
var speed2 = 5; // Scrollgeschwindigkeit in Zone 2
var stime = 10; // Timer zum Scrollen
// Interne Variablen
var scrolling = false
var scrollfast
var richtung
var y_mem = -1
var myWin
// Scrolling anhalten
function stopp_scrolling()
{
scrolling = false
y_mem = -1
}
// Scroll aktivieren und durchfuehren
function start_scrolling(initial)
{
if(!scrolling)
return
// Dokumentposition ermitteln
var dy = (myWin.pageXOffset != null) ? myWin.pageXOffset : myWin.document.body.scrollLeft
if((y_mem != dy) && !initial)
return
var dx = (myWin.pageYOffset != null) ? myWin.pageYOffset : myWin.document.body.scrollTop
dy += richtung * (scrollfast ? speed2 : speed1)
// Scrollen
myWin.scrollTo(dy, dx)
y_mem = dy
// Funktion erneut aufrufen
setTimeout("start_scrolling(false)", stime)
}
// Auswertung der Mausposition
function zeige(e)
{
// Mausposition und Dokumentdaten
var y = myWin.Event ? e.pageX : myWin.event.clientX
if(myWin.Event)
y -= - (myWin.pageXOffset != null) ? myWin.pageXOffset : myWin.document.body.scrollLeft
var wh = myWin.innerHeight ? myWin.innerWidth : myWin.document.body.clientWidth
var dh = myWin.document.height ? myWin.document.width : myWin.document.body.scrollHeight
// Zwischenvariablen
var s1 = Math.round(wh * sense1 / 100)
var s2 = Math.round(wh * sense2 / 100)
var s3 = Math.round(wh * sense3 / 100)
var now_scroll
// Scrollnotwendigkeit ermitteln
if(((y < s1) & (y>s3)) || (y > (wh - s1)) & (y < (wh - s3)))
{
now_scroll = true
richtung = (y < s1) ? -1 : 1
scrollfast = ((y < s2) || (y > (wh - s2))) ? true : false
}
else
{
now_scroll = false
scrolling = false
}
// Scrollstatus geaendert?
if(now_scroll != scrolling)
{
y_mem = -1
scrolling = now_scroll
if(scrolling)
start_scrolling(true)
}
}
// Mauskontrolle initiieren
myWin = window
if(myWin.Event)
myWin.document.captureEvents(Event.MOUSEMOVE)
myWin.document.onmousemove = zeige
//-->
window.onload = InitialiseScrollableArea();</script></head>
<body>
Dieser Text soll NICHT mit Maus scrollbar sein dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd<br><br><br>
<div id="irgendwas" style="overflow:auto;width:100%; height:500px; border:solid 1px red;">Dieser Text soll mit Maus im div scrollen dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd</div></body></html>
|
|
|
|
|
Kash
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Fr 22.08.2008 11:31
Titel
|
|
|
du mußt natürlich auch deinen Div Layer ansprechen.
jetzt sprichst du nur mit 'myWin.document.body' den body an.
myWin.document.body.irgendwas
wobei ich das auch so nicht lösen würde.
wenn jemand javascript (wie ich auch) deaktiviert hat, kann er den relevanten inhalt nicht sehen.
weil die scrollfunktion nicht funktioniert.
du kannst dem div auch die css eigenschaft 'overflow:auto;' vergeben.
dann kannst du diesen div mittels css scrollen wenn mehr inhalt drin ist.
schildere doch mal was du eigentl erreichen möchtest?
gruß
Zuletzt bearbeitet von Kash am Fr 22.08.2008 11:50, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Snifferdog
Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht:
|
Verfasst Fr 22.08.2008 11:34
Titel
|
|
|
Hi,
also ich kenne mich mit JavaScript auch nicht besonders gut aus und kann deswegen in deinem Script nicht wirklich
nach Fehlern suchen oder sowas. Allerdings habe ich auch mal einen Scroller für Divs mit JavaScript geschrieben
und da habe ich einfach 2 Divs genommen die ich ineinander verschachtelt habe. Sodass das äußere Div immer gleich groß war und nur das innere mit dem Text seine Position verändert. So ist es denke ich mal am einfachsten auch von der Umsetzung her. Vielleicht hilft dir das ja etwas
Gruß
|
|
|
|
|
Sejee
Threadersteller
Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 14:17
Titel
|
|
|
Hallo
Erst mal danke für die Antworten.
Zitat: |
du mußt natürlich auch deinen Div Layer ansprechen.
jetzt sprichst du nur mit 'myWin.document.body' den body an.
|
Ja ich weiss, ich habe bereits versucht, den Script umzuschreiben aber ich habe es nicht korrekt hingekriegt...
Kannst du mir vielleicht sagen, was genau ich alles ändern muss?
Zitat: |
wobei ich das auch so nicht lösen würde.
wenn jemand javascript (wie ich auch) deaktiviert hat, kann er den relevanten inhalt nicht sehen.
weil die scrollfunktion nicht funktioniert.
|
Ich verwende auf meiner Homepage viele Javascripte, weshalb ich es so eingerichtet habe, dass man automatisch auf eine Fehlerseite kommt, wenn man Javascript nicht aktiviert hat.
Meine noch unvollständige Homepage könnt ihr euch ansehen unter: http://www.vegetodesign.ch/jenny
Bisher scrollt der ganze Body (nur im Firefox/Safari). Da dies im IE Probleme mit einem anderen Script gibt , muss ich das ganze unbedingt in einen scrollbaren Div verpacken können...
Naja, schwer zu erklären.
|
|
|
|
|
zweitaccount
Dabei seit: 25.01.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 15:00
Titel
|
|
|
Hübsche Seite, hast Du die selbst gestaltet? Richtig nett.
Wg. Javascript-Problem:
Dazu müsste man das Script ziemlich umschreiben, ich
glaube nicht das jemand hier den Nerv dazu hat - besonders
wegen dem lästigen Troubleshooting im IE. Du könntest
alternativ aber auch eine Js-Libary hernehmen, dann kannst
Du dir wenigstens sicher sein dass das auf allen einigermaßen
modernen Browsern funzt.
In deinem Fall: http://demos111.mootools.net/Scroller
Brauchst aber einen ordentlichen Doctype dafür.
Gruß
zweitaccount
|
|
|
|
|
Kash
Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht:
|
Verfasst Fr 22.08.2008 15:20
Titel
|
|
|
super tipp.
|
|
|
|
|
Sejee
Threadersteller
Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 15:30
Titel
|
|
|
jaaa super!!
danke
|
|
|
|
|
Sejee
Threadersteller
Dabei seit: 22.08.2008
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 15:32
Titel
|
|
|
ahso
Zitat: |
Hübsche Seite, hast Du die selbst gestaltet? Richtig nett. |
ja danke
|
|
|
|
|
|
|
|
Ähnliche Themen |
automatisch mit javascript horizontal und vertikal scrollen
PopUp automatisch öffnen lassen ohne <body>-tag?
Automatisch horizontal scrollen
iFrame automatisch hoch und runter scrollen lassen
body {padding} und body{height:100%} möglich
JavaScript Scrollen?
|
|